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>

 

posted @ 2023-03-16 17:12  抽风的皮鞭  阅读(340)  评论(0编辑  收藏  举报