import { Switch, Route } from 'react-router-dom';
import { Page2 } from '../Page2';
import { Home } from '../Home';
import { page1Routes } from './Page1Routes';
export const Router = () => {
return (
<Switch>
<Route exact path="/">
<Home />
</Route>
<Route
path="/page1"
render={({ match: { url } }) => (
<Switch>
{page1Routes.map((route) => (
<Route
key={route.path}
exact={route.exact}
path={`${url}${route.path}`}
>
{route.children}
</Route>
))}
</Switch>
)}
></Route>
<Route path="/page2">
<Page2 />
</Route>
</Switch>
);
};
import { Page1 } from '../Page1';
import { Page1DetailA } from '../Page1DetailA';
import { Page1DetailB } from '../Page1DetailB';
export const page1Routes = [
{
path: '/',
exact: true,
children: <Page1 />,
},
{
path: '/detailA',
exact: false,
children: <Page1DetailA />,
},
{
path: '/detailB',
exact: false,
children: <Page1DetailB />,
},
];
import { BrowserRouter, Link } from 'react-router-dom';
import { Router } from './router/Router';
import './App.css';
export default function App() {
return (
<BrowserRouter>
<div className="App">
<Link to="/"> Home </Link>
<br />
<Link to="/page1">Page1</Link>
<br />
<Link to="/page2">Page2</Link>
</div>
<Router />
</BrowserRouter>
);
}