Check your version
This post assumes you're using React Router v6. If not, find your version below.React Router is all about mapping URL paths to React components. However, sometimes you want React Router to render a component when none of the Route
s match.
The most common use case for this is showing a 404 page. Regardless of if you want to show off your creative side or not, having a 404 page in place is a small thing that will go a long way for the UX of your site. Luckily, this is pretty simple to do with React Router's Routes
component.
Routes
is the powerhouse of React Router. Whenever the app's location changes, any Routes
component will look through all its children Route
elements to find the best match to render.
<Routes><Route path="/" element={<Home />} /><Route path="/about" element={<About />} /><Route path="/settings" element={<Settings />} /></Routes>
Unlike previous versions of React Router, the order of the children Route
s doesn't matter since Routes
is intelligent – meaning an algorithm now determines which is the best Route
to render. This makes rendering a 404 component pretty simple.
All you have to do is render a Route
with a path
of *
, and React Router will make sure to only render the element
if none of the other Route
s match.
<Routes><Route path="*" element={<NotFound />} /><Route path="/" element={<Home />} /><Route path="/about" element={<About />} /><Route path="/settings" element={<Settings />} /></Routes>