React Advanced - Class 1

Dear Sciaku Learner you are not logged in or not enrolled in this course.

Please Click on login or enroll now button.

If you have any query feel free to chat us!

Happy Coding! Happy Learning!

Lecture 59 :- React Advanced - Class 1

In "React Advanced - Class 1," we'll dive deeper into advanced React concepts and explore techniques to optimize performance, handle asynchronous actions, and work with React hooks.

Step 1: React Performance Optimization

Performance optimization is crucial for building fast and responsive React applications. Some common techniques to optimize React performance include:

  • Memoization: Use React.memo to memoize components and prevent unnecessary re-renders when their props don't change.
  • UseCallback and UseMemo: Use useCallback to memoize functions and useMemo to memoize computed values to avoid expensive computations on every render.
  • Virtualization: Implement virtualization techniques like windowing or infinite scrolling to render only the visible portion of a large list, reducing the number of DOM elements.
  • Code Splitting: Use code splitting with tools like React.lazy and React Suspense to load components on-demand, reducing the initial bundle size.
  • Web Workers: Offload expensive computations to web workers to keep the main UI thread responsive.

Step 2: Handling Asynchronous Actions with Redux Thunk

Redux Thunk is a middleware for Redux that enables handling asynchronous actions in Redux. It allows you to dispatch functions instead of plain objects, giving you more flexibility in handling async operations like API calls.

Install Redux Thunk:

To use Redux Thunk, you need to install the package:

bashCopy code

npm install redux-thunk

Step 3: Using Redux Thunk

Let's modify our previous Redux store setup to include Redux Thunk.

In store.js, import applyMiddleware and thunk from redux-thunk:

jsxCopy code

import { createStore, combineReducers, applyMiddleware } from 'redux'; import themeReducer from './reducers/themeReducer'; import thunk from 'redux-thunk'; const rootReducer = combineReducers({  theme: themeReducer, }); const store = createStore(rootReducer, applyMiddleware(thunk)); export default store;

Now, you can create async actions with Redux Thunk:

jsxCopy code

// themeActions.js export const toggleTheme = () => {  return {    type: 'TOGGLE_THEME',  }; }; export const toggleThemeAsync = () => {  return (dispatch) => {    // Simulate async action, like API call or server request    setTimeout(() => {      dispatch(toggleTheme());    }, 1000); // Dispatch the toggleTheme action after 1 second  }; };

Step 4: Using React Hooks - useContext

The useContext Hook allows you to access the Redux store without having to use the connect higher-order component. It is especially useful for functional components that need to consume data from the Redux store.

jsxCopy code

import React, { useContext } from 'react'; import { useDispatch, useSelector } from 'react-redux'; import { toggleTheme, toggleThemeAsync } from './actions/themeActions'; import { ThemeContext } from './ThemeContext'; function Button({ text }) {  const dispatch = useDispatch();  const theme = useSelector((state) => state.theme);  const { setTheme } = useContext(ThemeContext);  const handleClick = () => {    dispatch(toggleTheme());  };  const handleAsyncClick = () => {    dispatch(toggleThemeAsync());  };  const handleContextClick = () => {    setTheme((prevTheme) => (prevTheme === 'light' ? 'dark' : 'light'));  };  return (    <div>      <button onClick={handleClick} style={{ padding: '10px 20px', fontSize: '16px' }}>        {text} (Redux)      </button>      <button onClick={handleAsyncClick} style={{ padding: '10px 20px', fontSize: '16px' }}>        {text} (Async)      </button>      <button onClick={handleContextClick} style={{ padding: '10px 20px', fontSize: '16px' }}>        {text} (Context)      </button>      <h3>Current Theme: {theme}</h3>    </div>  ); } export default Button;

Step 5: Using React Hooks - useState and useEffect

React hooks like useState and useEffect can also be used for managing local component state and handling side effects within functional components.

jsxCopy code

import React, { useState, useEffect } from 'react'; function Counter() {  const [count, setCount] = useState(0);  useEffect(() => {    // Code to run after component render    console.log('Component rendered');    // Code to run on component unmount    return () => {      console.log('Component unmounted');    };  }, []);  const increment = () => {    setCount((prevCount) => prevCount + 1);  };  return (    <div>      <h2>Count: {count}</h2>      <button onClick={increment}>Increment</button>    </div>  ); } export default Counter;

Step 6: Using React.memo for Memoization

Use the React.memo higher-order component to memoize functional components and prevent unnecessary re-renders.

jsxCopy code

import React from 'react'; const ListItem = React.memo(({ name }) => {  return <li>{name}</li>; }); export default ListItem;

By wrapping the ListItem component with React.memo, the component will only re-render if its name prop changes.

Congratulations! You've completed the first class of React Advanced. You've learned about React performance optimization, handling asynchronous actions with Redux Thunk, and using React hooks like useContext, useState, and useEffect.

React offers a vast ecosystem of tools and libraries to build highly performant and scalable applications. As you continue your React journey, you can explore more advanced topics like React context, custom hooks, and integrating React with state management libraries like Redux or MobX.

Keep practicing, building more complex applications, and exploring the vast possibilities of React! Happy coding!

15. React Advance

Comments: 24

profile
22-Jul-2024, 10:33 PM

Kindly check the lecture number 6. Lifecycle of a Change in 1. Git and Github The above lecture is not related to the course please update it ASAP Thank you

profile
@harshp.cs.22
10-Jul-2024, 03:37 PM

From where can I download the files which love babbar says he has uploaded on dashboard ??

profile
23-Jul-2024, 12:05 PM

I have attached the link https://github.com/lakshayk12/ANN_optimization_BTP

profile
@sudiptamondal787
10-Jul-2024, 02:40 AM

bro, i paid for the course, but still can't access the course. do something

profile
@zubaid.zu
9-May-2024, 02:42 AM

Paid for the course but it still locked, can solve this problem please, when you take the payment the couse should be unlocked, evey time i have to message for any purchase

profile
@admin79
10-May-2024, 10:29 PM

Now your Paypal payment is accepted and your course is activated successfully. Please leave your valuable feedback.

profile
@anandwising
12-Mar-2024, 04:05 PM

Why i am being asked for payment if i am already enrolled in the course

profile
@admin79
12-Mar-2024, 05:22 PM

Dear anand, your payment is now updated check your course, apologize for several delays. Please leave your valuable feedback.

profile
@anandwising
12-Mar-2024, 08:33 PM

thanks its working now

profile
@Megha
22-Feb-2024, 11:02 PM

hello ,I have a doubt

profile
@akshaykumrawat99
22-Feb-2024, 10:56 PM

hello i have a doubt

profile
@rajnireddyatr
3-Feb-2024, 12:08 AM

hi

profile
@talha.developments
18-Jan-2024, 09:34 PM

I'm paying through my Card, but it giving an error. why ? how we can purchase a course in Pakistan. Paypal is banned here

profile
@aryangrg020
17-Jan-2024, 10:25 PM

can we download the videos

profile
@Krishanpal
14-Jan-2024, 08:12 PM

i done my payment for mern stack development love babbar but cant acces to course kindly give me access

profile
@sciaku1
17-Jan-2024, 12:28 PM

Dear Krishnapal your payment is already accepted go and check back.

profile
@shivanshgautam220
10-Jan-2024, 04:57 PM

Why i am being asked for payment if i am already enrolled in the course

profile
@sciaku1
11-Jan-2024, 03:18 PM

Dear Shivansh, if you already done your payment then contact us on our official Email id [email protected] or reply here.

profile
@p8354046
7-Jan-2024, 03:47 PM

Why i am being asked for payment if i am already enrolled in the course

profile
@sciaku1
11-Jan-2024, 03:19 PM

Dear p8354046, if you already done your payment then contact us on our official Email id [email protected] or reply here.

profile
@myidontablet
30-Dec-2023, 04:28 PM

Why i am being asked for payment if i am already enrolled in the course

profile
@sciaku1
6-Jan-2024, 01:42 AM

Dear, Don't worry now your problem is solved check your id.

profile
@duabhi911
16-Nov-2023, 02:03 AM

Why i am being asked for payment if i am already enrolled in the course

profile
@harshp.cs.22
23-Dec-2023, 11:40 AM

Yes bro

profile
@myidontablet
30-Dec-2023, 04:28 PM

I'm facing same issue

profile
@sciaku1
6-Jan-2024, 01:43 AM

Dear, Don't worry now your problem is solved check your id.

profile
@lenientharsh
31-Oct-2023, 10:56 AM

i want debit card option

profile
@lenientharsh
31-Oct-2023, 10:51 AM

how can i assure that this is not scam?

profile
@jainarin416
2-Nov-2023, 12:37 AM

i have same doubt is this website real or a fraud

profile
@sciaku1
6-Jan-2024, 01:45 AM

No its not any fraud. its genuine if you need any proof please contact us via email.

profile
@sciaku1
6-Jan-2024, 01:44 AM

No it's not any scam, its genuine if you need any proof please contact us via email.

profile
@hydrarishabh9
21-Oct-2023, 11:47 PM

how to do payment ?

profile
@sciaku1
30-Oct-2023, 05:34 PM

Click on Watch now button then click next video then payment option is showing

profile
@minhajakram440
18-Oct-2023, 11:18 PM

i am unable to access the video even i have already completed my payment .

profile
@aeromusgyan
21-Oct-2023, 01:17 AM

Your problem is solved

profile
@saklyi70
30-Sep-2023, 11:02 AM

plz add codes lecture wise ! it wold be great and helpful also

profile
@sciaku1
6-Jan-2024, 01:47 AM

now we have added starter package in lecture 2nd, go now and download it.

profile
@thomasroka31
29-Sep-2023, 04:05 PM

how to view this one

profile
@jitendrakrverma02
23-Sep-2023, 03:57 PM

Why video not play

profile
@sciaku1
6-Jan-2024, 01:47 AM

Now it's working.

profile
@9035praveen
2-Sep-2023, 12:12 PM

Thank you for the access of the videos. It would be greatful if I could no the way to download the videos

profile
@mohammedunaismdr
25-Sep-2023, 11:54 AM

Use idm to download

profile
@mishraprajjwal295
13-Oct-2023, 11:07 PM

ok

profile
@rahulkumarbaraswal30
4-Nov-2023, 01:32 PM

Hello bro can you share course with me?

profile
@bicky
1-Sep-2023, 05:42 PM

hello everyone

Frequently Asked Questions (FAQs)

How do I register on Sciaku.com?
How can I enroll in a course on Sciaku.com?
Are there free courses available on Sciaku.com?
How do I purchase a paid course on Sciaku.com?
What payment methods are accepted on Sciaku.com?
How will I access the course content after purchasing a course?
How long do I have access to a purchased course on Sciaku.com?
How do I contact the admin for assistance or support?
Can I get a refund for a course I've purchased?
How does the admin grant access to a course after payment?