📖 Scenario: You are building a simple React app that has multiple pages: Home, About, and Contact. You want users to navigate between these pages without the page reloading.
🎯 Goal: Create a React app using React Router to set up navigation between three pages: Home, About, and Contact. The app should display the correct page content when the user clicks the navigation links.
📋 What You'll Learn
Use React Router's BrowserRouter to wrap the app
Create three components: Home, About, and Contact
Set up routes using Routes and Route components
Add navigation links using Link components to switch pages
💡 Why This Matters
🌍 Real World
React Router is used in real websites and apps to create smooth navigation between pages without full page reloads, improving user experience.
💼 Career
Understanding React Router is essential for React developers to build multi-page apps and handle client-side routing efficiently.
Progress0 / 4 steps
1
Set up the page components
Create three React functional components called Home, About, and Contact. Each should return a simple <h2> element with text: "Home Page", "About Page", and "Contact Page" respectively.
React
Hint
Each component is a function that returns JSX with an <h2> tag and the page name.
2
Add React Router setup
Import BrowserRouter, Routes, and Route from react-router-dom. Wrap your app's main content inside <BrowserRouter>. Create a component called App that returns <BrowserRouter> with an empty <Routes> inside.
React
Hint
Wrap your app in <BrowserRouter> and add an empty <Routes> inside.
3
Add routes for each page
Inside the <Routes> component in App, add three <Route> components. Use path="/" for Home, path="/about" for About, and path="/contact" for Contact. Set the element prop to the corresponding component JSX: <Home />, <About />, and <Contact />.
React
Hint
Use <Route> with path and element props inside <Routes>.
4
Add navigation links
Import Link from react-router-dom. Inside App, above <Routes>, add a navigation bar with three <Link> components. Set their to props to "/", "/about", and "/contact". The link texts should be "Home", "About", and "Contact". Wrap the links in a <nav> element.
React
Hint
Use <Link> inside a <nav> to create clickable navigation links.
Practice
(1/5)
1. What is the main purpose of React Router in a React application?
easy
A. To style React components with CSS
B. To create multiple pages without reloading the browser
C. To manage state across components
D. To fetch data from APIs
Solution
Step 1: Understand React Router's role
React Router helps build apps with multiple pages by changing views without full page reloads.
Step 2: Compare with other options
Styling, state management, and data fetching are handled by other tools, not React Router.
Final Answer:
To create multiple pages without reloading the browser -> Option B
Quick Check:
React Router = multi-page navigation without reload [OK]
Hint: React Router = multi-page navigation without full reload [OK]
Common Mistakes:
Confusing React Router with CSS or styling tools
Thinking React Router manages data fetching
Assuming React Router handles state management
2. Which of the following is the correct way to wrap your app with React Router for browser-based routing?
easy
A. <BrowserRouter>...</BrowserRouter>
B. <Link>...</Link>
C. <Route>...</Route>
D. <Router>...</Router>
Solution
Step 1: Identify the main router component
For browser history routing, React Router uses BrowserRouter to wrap the app.
Step 2: Understand other components
Route defines pages, Link creates navigation links, and Router alone is not a valid component.
Final Answer:
<BrowserRouter>...</BrowserRouter> -> Option A
Quick Check:
BrowserRouter wraps app for browser routing [OK]
Hint: Wrap app with <BrowserRouter> for browser routing [OK]
Common Mistakes:
Using <Router> instead of <BrowserRouter>
Confusing <Route> with the router wrapper
Wrapping app with <Link> which is for navigation
3. Given this React Router setup, what will be rendered when the URL path is /about?
C. The <Route> for '/' should not have an element prop
D. Cannot use <Route> and <Routes> together
Solution
Step 1: Check component nesting rules
In React Router, all <Route> components must be children of <Routes>.
Step 2: Identify incorrect placement
The <Route path='/' ... /> is outside <Routes>, which is invalid.
Final Answer:
<Route> must be inside <Routes> -> Option A
Quick Check:
Routes wrap Route components [OK]
Hint: Always put <Route> inside <Routes> component [OK]
Common Mistakes:
Placing <Route> outside <Routes>
Thinking <Route> can be used alone
Confusing element prop usage
5. You want to create a navigation menu that changes the URL without reloading the page. Which React Router component should you use, and why?
Choose the best option.
hard
A. Use <Route> because it defines the navigation links
B. Use <a> tags because they are standard HTML links
C. Use <Link> because it updates the URL and renders the new page without reload
D. Use <BrowserRouter> because it creates the navigation menu
Solution
Step 1: Identify component for navigation links
<Link> is designed to change the URL and render new pages without reloading.
Step 2: Compare with other options
<a> causes full page reload, <Route> defines pages, and <BrowserRouter> wraps the app but does not create links.
Final Answer:
Use <Link> because it updates the URL and renders the new page without reload -> Option C
Quick Check:
Use Link for smooth navigation without reload [OK]
Hint: Use <Link> for navigation to avoid full page reload [OK]
Common Mistakes:
Using <a> tags causing full reload
Confusing <Route> with navigation links
Thinking <BrowserRouter> creates menus
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.