1.在src/page中创建路由组件
注:其中,Login和Main为并列路由, Analyse,Manage,Sign 为Main的子路由:
Main > Analyse + Manage + Sign
Login
2.在src/route下创建路由表index.js
步骤:
1.引入路由组件
2.引入Navigate实现重定向
3.创建并暴露路由表
具体代码如下:
import Main from "../pages/Main";
import Analyse from "../pages/Analyse";
import Manage from "../pages/Manage";
import Sign from "../pages/Sign";
import Login from "../pages/Login";
import {Navigate} from 'react-router-dom'
// 路由表统一管理理由
export default([
{
path:'/main', //路径
element:<Main/>, //组件
//子路由
children:[
{
path:'analyse',
element:<Analyse/>
},
{
path:'manage',
element:<Manage/>
},
{
path:'sign',
element:<Sign/>
}
]
},
{
path:'login',
element:<Login/>
},
{
path:'/',
//实现路由重定向
element:<Navigate to='/main'/>
}
])
3.App.js组件内
1.引入useRoutes以及route.js
import { useRoutes } from 'react-router-dom'
import route from './route'
2.根据路由表生成对应路由
const element = useRoutes(route)
3.引用路由表
{element}
完整代码如下:
import React from 'react'
import { useRoutes } from 'react-router-dom'
import route from './route'
import './App.css'
export default function App() {
//根据路由表生成对应路由
const element = useRoutes(route)
return (
<div>
{/* 引用路由表 */}
{element}
</div>
)
}
4. 若要显示子路由,需在父级路由组件(Main.js)中引入Outlet!!!
import React from 'react'
import { Outlet } from 'react-router-dom'
export default function Main() {
return (
<div>
Main
<Outlet/>
</div>
)
}