When a page is composed of segments, we can use nested routes. Parent component can render template contents, such as navbar, footer, and specify a place called <Outlet />
to render nested/child component.
// Routes.ts
import { createBrowserRouter, RouterProvider } from "react-router-dom";
import { ProductsPage } from "./pages/ProductsPage";
import App from "./App";
const router = createBrowserRouter([
{
path: '/',
element: <App />,
children: [
{path: 'products', element: <ProductsPage />}
]
},
]);
export function Routes() {
return <RouterProvider router={router} />;
}
// Parent component App.tsx
import { Outlet } from "react-router-dom";
import { Header } from "./Header";
function App() {
return (
<>
<Header />
<Outlet />
</>
);
}
export default App;