React Advanced - Class 2

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 60 :- React Advanced - Class 2

In "React Advanced - Class 2," we'll continue exploring more advanced React concepts and build on what we learned in the previous class. We'll cover topics such as React Router advanced features, lazy loading, and code splitting.

Step 1: React Router - Code Splitting with React.lazy and Suspense

React.lazy is a function that allows you to dynamically load a component. It helps with code splitting by only loading the component when it's needed.

jsxCopy code

import React, { Suspense } from 'react'; import { BrowserRouter as Router, Route, Link } from 'react-router-dom'; // Lazy load components const Home = React.lazy(() => import('./Home')); const About = React.lazy(() => import('./About')); function App() {  return (    <Router>      <div>        <h1>Hello, React!</h1>        <nav>          <ul>            <li>              <Link to="/">Home</Link>            </li>            <li>              <Link to="/about">About</Link>            </li>          </ul>        </nav>        <Suspense fallback={<div>Loading...</div>}>          <Route exact path="/" component={Home} />          <Route path="/about" component={About} />        </Suspense>      </div>    </Router>  ); } export default App;

In this example, the Home and About components are lazily loaded using React.lazy and wrapped in a Suspense component. The Suspense component displays the fallback content (e.g., "Loading...") while the lazy-loaded components are being loaded.

Step 2: Nested Routes with React Router

You can create nested routes by defining additional Route components inside a component.

jsxCopy code

import React, { Suspense } from 'react'; import { BrowserRouter as Router, Route, Link } from 'react-router-dom'; const Home = React.lazy(() => import('./Home')); const About = React.lazy(() => import('./About')); const Products = React.lazy(() => import('./Products')); function App() {  return (    <Router>      <div>        <h1>Hello, React!</h1>        <nav>          <ul>            <li>              <Link to="/">Home</Link>            </li>            <li>              <Link to="/about">About</Link>            </li>            <li>              <Link to="/products">Products</Link>            </li>          </ul>        </nav>        <Suspense fallback={<div>Loading...</div>}>          <Route exact path="/" component={Home} />          <Route path="/about" component={About} />          <Route path="/products" component={Products} />        </Suspense>      </div>    </Router>  ); } export default App;

In this example, we added a new component Products and nested it within the Suspense component.

Step 3: Redirecting with React Router

React Router allows you to perform redirects with the Redirect component or the history object.

jsxCopy code

import React, { Suspense } from 'react'; import { BrowserRouter as Router, Route, Link, Redirect } from 'react-router-dom'; const Home = React.lazy(() => import('./Home')); const About = React.lazy(() => import('./About')); const Products = React.lazy(() => import('./Products')); function App() {  return (    <Router>      <div>        <h1>Hello, React!</h1>        <nav>          <ul>            <li>              <Link to="/">Home</Link>            </li>            <li>              <Link to="/about">About</Link>            </li>            <li>              <Link to="/products">Products</Link>            </li>          </ul>        </nav>        <Suspense fallback={<div>Loading...</div>}>          <Route exact path="/" component={Home} />          <Route path="/about" component={About} />          <Route path="/products" component={Products} />          {/* Redirect from /home to / */}          <Redirect from="/home" to="/" />        </Suspense>      </div>    </Router>  ); } export default App;

In this example, we added a redirect from /home to / using the Redirect component. Now, if the user visits /home, they will be redirected to the home page (/).

Step 4: React Router - URL Parameters

React Router allows you to capture URL parameters and pass them as props to the rendered component.

jsxCopy code

import React, { Suspense } from 'react'; import { BrowserRouter as Router, Route, Link } from 'react-router-dom'; const UserProfile = React.lazy(() => import('./UserProfile')); function App() {  return (    <Router>      <div>        <h1>Hello, React!</h1>        <nav>          <ul>            <li>              <Link to="/">Home</Link>            </li>            <li>              <Link to="/user/123">User Profile</Link>            </li>          </ul>        </nav>        <Suspense fallback={<div>Loading...</div>}>          <Route exact path="/" component={Home} />          <Route path="/user/:userId" component={UserProfile} />        </Suspense>      </div>    </Router>  ); } export default App;

In this example, we added a route with a parameter :userId. The value of the parameter in the URL will be passed as the userId prop to the UserProfile component.

Step 5: Using React Router - Location and History

React Router provides access to the current location and history objects using the useLocation and useHistory hooks.

jsxCopy code

import React, { Suspense } from 'react'; import { BrowserRouter as Router, Route, Link, useLocation, useHistory } from 'react-router-dom'; const UserProfile = React.lazy(() => import('./UserProfile')); function App() {  const location = useLocation();  const history = useHistory();  const handleGoBack = () => {    history.goBack();  };  return (    <Router>      <div>        <h1>Hello, React!</h1>        <nav>          <ul>            <li>              <Link to="/">Home</Link>            </li>            <li>              <Link to="/user/123">User Profile</Link>            </li>          </ul>        </nav>        <Suspense fallback={<div>Loading...</div>}>          <Route exact path="/" component={Home} />          <Route path="/user/:userId" component={UserProfile} />        </Suspense>      </div>    </Router>  ); } export default App;

In this example, we use the useLocation and useHistory hooks to get the current location and history objects. We also added a handleGoBack function that uses history.goBack() to navigate back to the previous page.

Congratulations! You've completed the second class of React Advanced. You've learned about code splitting with React.lazy and Suspense, nested routes, redirects, handling URL parameters, and using location and history objects with React Router.

React and React Router offer powerful tools to build complex and performant applications. As you continue your React journey, you can explore more advanced topics like server-side rendering (SSR) with React, React context, error boundaries, and using advanced hooks like useReducer and useRef.

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

15. React Advance

23 Comments

@familyvimes@gmail.com
[email protected] Jul 22, 2024 at 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

@harshp.cs.22
harshp.cs.22 Jul 10, 2024 at 3:37 PM

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

@familyvimes@gmail.com
[email protected] Jul 23, 2024 at 12:05 PM

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

@zubaid.zu
zubaid.zu May 9, 2024 at 2: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

@admin79
admin79 May 10, 2024 at 10:29 PM

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

@anandwising
anandwising Mar 12, 2024 at 4:05 PM

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

@admin79
admin79 Mar 12, 2024 at 5:22 PM

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

@anandwising
anandwising Mar 12, 2024 at 8:33 PM

thanks its working now

@Megha
Megha Feb 22, 2024 at 11:02 PM

hello ,I have a doubt

@akshaykumrawat99
akshaykumrawat99 Feb 22, 2024 at 10:56 PM

hello i have a doubt

@rajnireddyatr
rajnireddyatr Feb 3, 2024 at 12:08 AM

hi

@talha.developments
talha.developments Jan 18, 2024 at 9: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

@aryangrg020
aryangrg020 Jan 17, 2024 at 10:25 PM

can we download the videos

@Krishanpal
Krishanpal Jan 14, 2024 at 8:12 PM

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

@sciaku1
sciaku1 Jan 17, 2024 at 12:28 PM

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

@shivanshgautam220
shivanshgautam220 Jan 10, 2024 at 4:57 PM

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

@sciaku1
sciaku1 Jan 11, 2024 at 3:18 PM

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

@p8354046
p8354046 Jan 7, 2024 at 3:47 PM

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

@sciaku1
sciaku1 Jan 11, 2024 at 3:19 PM

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

@myidontablet
myidontablet Dec 30, 2023 at 4:28 PM

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

@sciaku1
sciaku1 Jan 6, 2024 at 1:42 AM

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

@duabhi911
duabhi911 Nov 16, 2023 at 2:03 AM

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

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

Yes bro

@myidontablet
myidontablet Dec 30, 2023 at 4:28 PM

I'm facing same issue

@sciaku1
sciaku1 Jan 6, 2024 at 1:43 AM

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

@lenientharsh
lenientharsh Oct 31, 2023 at 10:56 AM

i want debit card option

@lenientharsh
lenientharsh Oct 31, 2023 at 10:51 AM

how can i assure that this is not scam?

@jainarin416
jainarin416 Nov 2, 2023 at 12:37 AM

i have same doubt is this website real or a fraud

@sciaku1
sciaku1 Jan 6, 2024 at 1:45 AM

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

@sciaku1
sciaku1 Jan 6, 2024 at 1:44 AM

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

@hydrarishabh9
hydrarishabh9 Oct 21, 2023 at 11:47 PM

how to do payment ?

@sciaku1
sciaku1 Oct 30, 2023 at 5:34 PM

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

@minhajakram440
minhajakram440 Oct 18, 2023 at 11:18 PM

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

@aeromusgyan
aeromusgyan Oct 21, 2023 at 1:17 AM

Your problem is solved

@saklyi70
saklyi70 Sep 30, 2023 at 11:02 AM

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

@sciaku1
sciaku1 Jan 6, 2024 at 1:47 AM

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

@thomasroka31
thomasroka31 Sep 29, 2023 at 4:05 PM

how to view this one

@jitendrakrverma02
jitendrakrverma02 Sep 23, 2023 at 3:57 PM

Why video not play

@sciaku1
sciaku1 Jan 6, 2024 at 1:47 AM

Now it's working.

@9035praveen
9035praveen Sep 2, 2023 at 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

@mohammedunaismdr
mohammedunaismdr Sep 25, 2023 at 11:54 AM

Use idm to download

@mishraprajjwal295
mishraprajjwal295 Oct 13, 2023 at 11:07 PM

ok

@rahulkumarbaraswal30
rahulkumarbaraswal30 Nov 4, 2023 at 1:32 PM

Hello bro can you share course with me?

@bicky
bicky Sep 1, 2023 at 5:42 PM

hello everyone

Frequently Asked Questions About Sciaku Courses & Services

Quick answers to common questions about our courses, quizzes, and learning platform

Didn't find what you're looking for?

help_center Contact Support