react-router6|路由

1.概述

官方文档:Home v6.4.1 | React RouterReact Router 以三个不同的包发布到 npm 上,它们分别为:

    1. react-router: 路由的核心库,提供了很多的:组件、钩子。
    2. react-router-dom: 包含react-router所有内容,并添加一些专门用于 DOM 的组件,例如 <BrowserRouter>
    3. react-router-native: 包括react-router所有内容,并添加一些专门用于ReactNative的API,例如:<NativeRouter>等。

2.BroserRouter和HashRouter

在 React Router 中,最外层的 API 通常就是用 BrowserRouter。BrowserRouter 的内部实现是用了 history 这个库和 React Context 来实现的,所以当你的用户前进后退时,history 这个库会记住用户的历史记录,这样需要跳转时可以直接操作。

BrowserRouter 使用时,通常用来包住其它需要路由的组件,所以通常会需要在你的应用的最外层用它,比如如下

import ReactDOM from 'react-dom'
import * as React from 'react'
import { BrowserRouter } from 'react-router-dom'
import App from './App`

ReactDOM.render(
  <BrowserRouter>
    <App />
  </BrowserRouter>
, document.getElementById('app))

<HashRouter>

  1. 说明:作用与<BrowserRouter>一样,但<HashRouter>修改的是地址栏的hash值。
  2. 备注:6.x版本中<HashRouter><BrowserRouter> 的用法与 5.x 相同。

3.Routes和Route

routes和v5版本的switch有点类似。
switch的作用是,第一次匹配路由后,之后就不在匹配路由。
Routes也具有这个功能。

  1. switch可使用,也可不使用。v5
  2. Routes必须包裹Route。 v6

1.v6版本中移出了先前的 ,引入了新的替代者:。
和 要配合使用,且必须要用包裹。
相当于一个 if 语句,如果其路径与当前 URL 匹配,则呈现其对应的组件。
2.<Route caseSensitive属性用于指定:匹配时是否区分大小写(默认为 false)。
3.当URL发生变化时,都会查看其所有子 元素以找到最佳匹配并呈现组件 。

  1. 也可以嵌套使用,且可配合useRoutes()配置 “路由表” ,但需要通过 组件来渲染其子路由。

1.使用

在这里插入图片描述

2.严格区分大小写

在这里插入图片描述

4.Navigate重定向

在这里插入图片描述

5.NavLink (高亮)

1.修改默认active(高亮)的类名

v6版本是通过一个函数来修改高亮的类名。默认类名为active
如果选择的的时候,isActive参数为true。
在这里插入图片描述

6.useRoutes (路由表)

1.使用路由表的形式来代替Route

在这里插入图片描述
在这里插入图片描述

2.优化,直接把路由数组写在新文件中

在这里插入图片描述

7.嵌套路由

1.配合路由表嵌套路由

在这里插入图片描述

2.Outlet相当于vue的router-view

在这里插入图片描述

3.高亮精准匹配

当子路由显示,父级路由不展示高亮。
在父级路由上加上end,即可精准匹配。

在这里插入图片描述

8.路由传参

1.params

1.路由表中写动态参数

在这里插入图片描述

2.路由跳转路径中传输数据

在这里插入图片描述

3.使用useParams函数接收

在这里插入图片描述

4.使用useMatch接收参数

但是这个要传路径,且返回的数据结构较为复杂

在这里插入图片描述
在这里插入图片描述

2.search参数也就是query

1.search参数主要变化的就是接收参数使用的hook不同。

在这里插入图片描述

2.使用searchParams()接收参数

在这里插入图片描述

3.注意

第二个解构赋值的参数是设置query的变化,不经常使用。
在这里插入图片描述
在这里插入图片描述

4.使用useLocation获取参数

在这里插入图片描述

在这里插入图片描述

3.state参数

1.传state

在这里插入图片描述

2.使用useLocation获取参数

在这里插入图片描述
在这里插入图片描述

9.编程式导航

useNavigate()

使用之后,即可使用返回的实例编程式跳转路由

1.编程式传params参数

在这里插入图片描述

2.编程式传search

在这里插入图片描述

3.传state

在这里插入图片描述

4.也可以使用该hook,达到跳转history

在这里插入图片描述

10 了解的hook

1.useRouterContext()—判断是否存在路由环境中。

只要处于<BroswerRouter中,就是true。

2.useNavgiationType()—返回当前导航类型

POP:浏览器刷新页面
PUSH:
REPLACE

3.useOutlet()—用来呈现当前组件中要渲染的嵌套路由。

如果嵌套路由已经挂载,则显示挂载的嵌套路由。反之,则null

4.useResolvedPath()—给定一个url,解析其中的path,search和hash值。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
React Router是React的一种路由管理工具,它允许我们在应用程序中建立路由,并通过不同的URL路径来加载不同的页面。 而react-router-config是React Router的一个附加库,它提供了一种以配置方式来定义应用程序路由的方法。 路由切入动画是指在切换页面时,为页面添加一些过渡效果和动画,以提升用户体验。 使用react-router-config实现路由切入动画的步骤如下: 1. 首先,在路由配置文件中定义各个页面的路由信息,并设置对应的组件。 2. 在路由配置文件中,为每个路由定义一个transition属性,用于标识该路由的过渡效果。 3. 在根组件中使用React Router提供的Switch组件来包裹所有路由,并使用TransitionGroup组件来包裹Switch组件。 4. 在根组件中使用自定义的AnimatedSwitch组件来替换React Router提供的Switch组件,并将路由配置文件传递给AnimatedSwitch组件。 5. 在AnimatedSwitch组件中根据当前路由的transition属性,为切换的页面添加不同的过渡效果和动画。 例如,可以定义一个FadeIn动画效果,在路由配置文件中为需要应用该动画效果的路由设置transition属性为'fade-in',然后在AnimatedSwitch组件中根据该属性为页面添加相应的CSS动画样式。 总而言之,使用react-router-config可以方便地配置应用程序的路由信息,并结合一些CSS动画库,可以实现各种炫酷的路由切入动画。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值