Route
The Route component is used to set up a route in Hydrogen that's independent of the file system. Routes are matched in the order that they're defined.
Example code
App.server.jsx
import {Router, Route} from '@shopify/hydrogen';
function App() {
return (
<Suspense fallback={<LoadingFallback />}>
<ShopifyProvider>
<CartProvider>
<Router>
<Route path="/" page={<Home />} />
<Route path="/products/:handle" page={<Product />} />
<Route path="*" page={<NotFound />} />
</Router>
</CartProvider>
</ShopifyProvider>
</Suspense>
);
}
function Product({params}) {
return <h1>Product name: {params.handle}</h1>;
}
function Home() {
return <h1>Home</h1>;
}
function NotFound() {
return <h1>Not found</h1>;
}
export default renderHydrogen(App);
Props
| Name | Type | Description |
|---|---|---|
| path | string | The URL path where the route exists. The path can contain variables. For example, /products/:handle. |
| page | ReactElement | A reference to a React Server Component that's rendered when the route is active. |
Component type
The Route component is a server component that renders inside App.server.jsx. For more information about component types, refer to React Server Components.
Considerations
- Only one route renders at a time.
- Use
path="*"with the last defined<Route>to implement a fallback mechanism on a "Not Found" page. - Routes defined with the
Routecomponent can't be API routes.