Routing via react-router
and connected-react-router
react-router
is the de-facto standard routing solution for react applications.
The thing is that with redux and a single state tree, the URL is part of that
state. connected-react-router
takes care of synchronizing the location of our
application with the application state.
(See the connected-react-router
FAQ
for more information)
Usage
To add a new route, you can simply use the generator, to create a new one. yarn generate route
and then it will
added on the route list:
routes: [
{
path: '/',
exact: false,
component: props => <LazyComponent {...props} componentName="Home" />,
},
// [...]
Top level routes are located in index.jsx
.
If you want your route component to be loaded in lazy mode, answer on genrator route with 'hould the route be lazy loaded?'.
Child Routes
For example, if you have a route called about
at /about
and want to make a child route called team
at /about/our-team
,
you can run the command generator yarn generate subroute
, and it create them on components folder, and insert as Route
in RootComponent of Route.
// AboutPage/RootComponent.jsx
import { Switch, Route } from 'react-router-dom';
const AboutPaage = props => (
<>
<Switch>
<Route path={`${props.match.path}/`} component={About} exact />
<Route path={`${props.match.path}/our-teams`} component={Blog} />
</Switch>
</>
);
You can read more in react-router
's documentation.