react嵌套子路由使用(v6)
router.js
import React, { Component } from 'react';
import { Routes, Route, Navigate } from 'react-router-dom';
{/* 引入组件 */}
import Home from 'XXX';
import Page1 from 'XXX';
import Page2 from 'XXX';
import Page3 from 'XXX';
import Children1 from 'XXX';
import Children2 from 'XXX';
import Children3 from 'XXX';
export default class router extends Component {
render() {
return (
<Routes>
{/* 重定向 */}
<Route path="/" element={<Home />} exact></Route>
<Route path="home" element={<Home />}></Route>
<Route path="page1" element={<Page1 />}></Route>
<Route path="page2" element={<Page2 />}></Route>
<Route path="page3" element={<Page3 />}>
{/* 默认子路由,注意重定向路径最前面要加'/',并且斜杠后面跟的是带有父路由的完整路径 */}
<Route index element={<Navigate to="/page3/page1-children1" />}></Route>
{/* 注意子路由名称前面不要加'/' */}
<Route path="page3-children1" element={<Children1 />}></Route>
<Route path="page3-children2" element={<Children2 />}></Route>
<Route path="page3-children3" element={<Children3 />}></Route>
</Route>
<Route path="*" element={<Navigate to="home" />}></Route>
</Routes>
)
}
}
ps:注意Route标签的path属性p要小写!!!(心累。。。)
App.js
... import Router from 'XXX/router.js'; ... {/* 主路由出口 */} <div> <Router></Router> </div>
page.js
... import { Outlet } from 'react-router-dom'; ... {/* 子路由出口 */} <div> <Outlet></Outlet> </div>

浙公网安备 33010602011771号