React router
·
要使用路由首先要先安装
npm install react-router-dom
一级路由
安装完后先引入,然后才能使用
import { BrowserRouter as Router, Routes, Route, Link } from 'react-router-dom';
示例:

<Router>
<ul className="topBar">
<li><Link to="/">PageA</Link></li>
<li><Link to="/PageB">PageB</Link></li>
</ul>
<Routes>
<Route exact path="/" element={<Homes/>}/>
<Route path="/PageB" element={<About/>}>
<Route path='test' element={<Test/>}></Route>//注意这是嵌套路由。test前面不要加/ 要是相对路径才行
<Route path='demo' element={<Demo/>}></Route>
</Route>
</Routes>
</Router>
自己练习示例:

二级路由也就是嵌套路由
嵌套路由你这个写法就不一样了,你需要这样子写<Route><Route/>
而不能这样写了<Route/> , 因为里面要写嵌套的路由,要给它包裹起来

这样配置好后,在哪个要嵌套路由的页面引入这个
link 是写要跳转的路径,而Outlet和vue的routerview一样就是内容显示的区域,就是内容它里面显示
import { Link, Outlet } from "react-router-dom";
在那个嵌套路由的页面这么写

在App.js里面还需要引入嵌套路由里面写的两个组件
App.js是一个假设就是配置路由跳转的页面,就算是嵌套的路由也得在这个里面引入然后
在进行配置

在配置路由的哪个页面在配置嵌套的路由就可以了

编程式路由
不集中配置路由


React router集中配置路由
把路由配置在一个文件里面的方式(小型项目不建议,但是我是比较喜欢这样写的)
先配置主入口文件index.js里的东西改一下,改成这样的

import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import reportWebVitals from './reportWebVitals';
import { RouterProvider } from 'react-router-dom';
import router from './router';
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<React.StrictMode>
<RouterProvider router={router} />
</React.StrictMode>
);
reportWebVitals();
在创建路由文件router.js

router.js文件里的东西这样写,这里面也是至少要配置两个路由,一个的话会出错误
还有就是在路由配置里面可以设置index:true这个是默认渲染的
![]()

import { createBrowserRouter } from "react-router-dom";
import App from "./App";
import Home from './pagaes/Home';
export const router = createBrowserRouter([
{
path: "/",
element: <App />,
},
{
path: "/home",
element: <Home />,
},
]);
export default router;
页面跳转示例
要先引入这个东西然后初始化一下最后用navigate()括号里面写路径就可以跳转了
![]()
import { useNavigate } from 'react-router-dom';

简便方法直接在按钮里写
![]()
这样配置后一级路由怎么实现就是这种的

和vue一样也是配置子路由

然后页面引入Link和Outlet一个是跳转用的一个是内容显示区域
![]()

更多推荐


所有评论(0)