安装
npm i react-router react-router-dom
使用
//引入
import { Navigate, Route, Routes } from "react-router";
import { BrowserRouter as Router } from "react-router-dom";
// 使用渲染根组件
<Router>
<Routes>
<Route path={"/projects"} element={<ProjectListScreen />}></Route>
<Route
path={"/projects/:projectId/*"}
element={<ProjectScreen />}
></Route>
<Route
path="*"
element={<Navigate to="/projects" replace={true} />}
></Route>
</Routes>
</Router>
- 渲染根组件下的子组件及切换
import { Navigate, Route, Routes } from "react-router";
import { Link } from "react-router-dom";
import { EpicScreen } from "screens/epic";
import { KanbanScreen } from "screens/kanban";
export const ProjectScreen = () => {
return (
<div>
<h1>ProjectScreen</h1>
<Link to={"kanban"}>看板</Link>
<Link to={"epic"}>任务组</Link>
<Routes>
<Route path={"/kanban"} element={<KanbanScreen />}></Route>
<Route path={"/epic"} element={<EpicScreen />}></Route>
<Route
path="*"
element={
<Navigate
to={window.location.pathname + "/kanban"}
replace={true}
/>
}
></Route>
</Routes>
</div>
);
};
效果: