React 学习笔记总结(八)
创始人
2024-05-11 08:05:42
0

react-router6版本的学习笔记。

文章目录

  • 一、React Router 6
  • 二、router6版本的 安装 和 一级路由
    • 1. 安装router6版本
    • 2. Routes组件 和 Route的 element属性
  • 三、router6 之 重定向
  • 四、router6的 NavLink高亮
  • 五、router6 的 useRoutes路由表(重要)
  • 六、router6 的 嵌套路由
  • 七、router6 的 params参数
  • 八、router6 的 search参数
  • 九、router6 的 state参数
  • 十、router6 编程式路由导航
  • 十一、router6 的 useInRouterContext
  • 十二、router6 的 useNavigationType
  • 十三、router6 的 useOutlet
  • 十四、router6 的 useResolvedPath

一、React Router 6

React Router 6版本是从2021年11月开始,便是默认版本了。

与 5 相比 6的变化如下:
在这里插入图片描述

提示:因为router6版本新增了多个hook,所以官方明确推荐函数式组件。

二、router6版本的 安装 和 一级路由

1. 安装router6版本

rsf + tab 快捷键快速生成函数式组件。

# 安装react-router-dom6版本
yarn add react-router-dom
# 或者
"react-router-dom": "^6.6.2"

2. Routes组件 和 Route的 element属性

router6版本移除了Switch,让Routes替换了Switch。

router6版本的Route中的属性component 变化为了 element如下:

}/>}/>

简单的示例:

import React from 'react';
import {NavLink,Routes,Route} from 'react-router-dom'
import About from "./pages/About";
import Home from "./pages/Home";function App(props) {return (

App

About
Home
}/>}/>
); }export default App;

别忘记入口文件包裹,添加BrowserRouter:

import React from 'react'
import ReactDOM from 'react-dom'
import App from './App'
import {BrowserRouter} from 'react-router-dom'ReactDOM.render(,document.getElementById('root'))

Routes 和 Route的总结:
在这里插入图片描述

三、router6 之 重定向

router6移除了Redirect,取而代之的是Navigate。

在这里插入图片描述
只要Navigate组件被渲染,就会修改路径,切换视图。

还需要注意replace属性用来控制跳转模式(默认为push模式)。

四、router6的 NavLink高亮

NavLink组件是高亮效果是通过active类展示的。

在这里插入图片描述

五、router6 的 useRoutes路由表(重要)

useRoutes很好用,一般项目中,都要单独写出来。

import React from 'react';
import {NavLink,useRoutes} from 'react-router-dom'
import About from "./pages/About";
import Home from "./pages/Home";function App(props) {// fixme useRoutes的使用const element = useRoutes([{path:'/about',element:},{path:'/home',element:},])return (

App

About
Home
{element}
); }export default App;

六、router6 的 嵌套路由

嵌套路由配置如下:
在这里插入图片描述

Outlet的使用:
在这里插入图片描述
NavLink的end属性使用:
在这里插入图片描述

七、router6 的 params参数

路由链接传递参数形式:
在这里插入图片描述

路由参数为:
在这里插入图片描述
使用useParams hook和useMatch hook来实现params参数传递:
在这里插入图片描述

八、router6 的 search参数

路由链接参数携带方式:
在这里插入图片描述

使用useSearchParams hook:

  • 注意search 和 setSearch的使用。
    在这里插入图片描述
    useLocation hook函数:(其实就是来获取一个路由明细数据的)
  • 该函数获取的对象如下:
    在这里插入图片描述

九、router6 的 state参数

路由链接格式:
在这里插入图片描述
使用useLocation hook函数格式如下:
在这里插入图片描述

十、router6 编程式路由导航

通过useNavigate hook函数进行操作:
在这里插入图片描述

使用useNavigate模拟页面的回退前进效果:
在这里插入图片描述

十一、router6 的 useInRouterContext

useInRouterContext hook函数:就是用来判断是否在路由的山下文中。

在这里插入图片描述

十二、router6 的 useNavigationType

在这里插入图片描述

十三、router6 的 useOutlet

在这里插入图片描述

十四、router6 的 useResolvedPath

在这里插入图片描述

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...