Chapter 12React Tutorial~1 min read
React Router
Routing — Multiple Pages बनवणे
React Router ही React applications साठी standard routing library आहे. Single Page Application (SPA) मध्ये URL नुसार वेगवेगळे components दाखवायला वापरतात. Page reload न होता navigation होतो.
Install करणे
bash
npm install react-routerBasic Setup
Routes configure करणे
jsx
// main.jsx — entry point
import { createRoot } from 'react-dom/client';
import { RouterProvider } from 'react-router';
import { router } from './app';
createRoot(document.getElementById('root')).render(
<RouterProvider router={router} />
);
// app.jsx — routes define करणे
import { createBrowserRouter } from 'react-router';
import Home from './pages/Home';
import About from './pages/About';
import Contact from './pages/Contact';
import NotFound from './pages/NotFound';
export const router = createBrowserRouter([
{ path: "/", element: <Home /> },
{ path: "/about", element: <About /> },
{ path: "/contact", element: <Contact /> },
{ path: "*", element: <NotFound /> }, // 404
]);Link — Navigation
Link आणि NavLink
jsx
import { Link, NavLink, useNavigate } from 'react-router';
function Navbar() {
const navigate = useNavigate();
return (
<nav>
{/* Link — page reload नाही */}
<Link to="/">Home</Link>
<Link to="/about">About</Link>
{/* NavLink — active state automatically */}
<NavLink
to="/contact"
className={({ isActive }) =>
isActive ? "text-blue-500 font-bold" : "text-gray-600"
}
>
Contact
</NavLink>
{/* Programmatic navigation */}
<button onClick={() => navigate('/about')}>
Go to About
</button>
</nav>
);
}Layout Routes — Shared UI
Outlet — nested routes साठी
jsx
import { Outlet, Link } from 'react-router';
// Layout component — Navbar + Footer सगळ्या pages वर
function Layout() {
return (
<>
<nav>
<Link to="/">Home</Link>
<Link to="/about">About</Link>
<Link to="/tutorials">Tutorials</Link>
</nav>
<main>
<Outlet /> {/* Child route येथे render होतो */}
</main>
<footer>
<p>© 2025 Tech Tatya</p>
</footer>
</>
);
}
// Router config — Layout च्या आत routes
export const router = createBrowserRouter([
{
path: "/",
element: <Layout />,
children: [
{ index: true, element: <Home /> },
{ path: "about", element: <About /> },
{ path: "tutorials", element: <Tutorials /> },
],
},
]);Dynamic Routes — useParams
/tutorial/:id — dynamic segment
jsx
import { useParams } from 'react-router';
// Route: { path: "tutorial/:id", element: <TutorialPage /> }
function TutorialPage() {
const { id } = useParams(); // URL मधून :id extract करतो
return (
<div>
<h1>Tutorial: {id}</h1>
{/* id वापरून API call करा */}
</div>
);
}
// /tutorial/react → id = "react"
// /tutorial/python → id = "python"
// /tutorial/html → id = "html"✅ Key Points — लक्षात ठेवा
- ▸createBrowserRouter — routes define करतो
- ▸<RouterProvider router={router} /> — app wrap करतो
- ▸<Link to="/path"> — page reload न होता navigate
- ▸<Outlet /> — nested/child route येथे render होतो
- ▸useParams() — URL dynamic segments extract करतो
0/12 chapters पूर्ण