Roadmap › React (with Hooks, React 19 & Next.js basics) › Module: Building Real Apps
Lessons in this course (17)

13. Routing with React Router

Intermediate★ Must knowLesson 13 of 17
jsx
import { createBrowserRouter, RouterProvider, Link, NavLink, Outlet, useParams, useNavigate } from "react-router";

const router = createBrowserRouter([
  {
    path: "/", element: <Layout />, errorElement: <ErrorPage />,
    children: [
      { index: true, element: <Home /> },
      { path: "orders", element: <Orders /> },
      { path: "orders/:id", element: <OrderDetails />, loader: ({ params }) => fetchOrder(params.id) },
      { path: "admin", element: <RequireAuth><Admin /></RequireAuth> },
      { path: "*", element: <NotFound /> },
    ],
  },
]);

function Layout() { return <><nav><NavLink to="/orders">Orders</NavLink></nav><Outlet /></>; }
function OrderDetails() { const { id } = useParams(); const navigate = useNavigate(); /* ... */ }

createRoot(document.getElementById("root")).render(<RouterProvider router={router} />);

React Router v7 (2024) merged with Remix and has library mode and framework mode. Alternative: TanStack Router (type-safe).