8.React路由

目前都是前端出路由与页面转换这种,后端只出接口

目录

1  安装 react-router-dom

2  简单使用

3  组件中改变路由(编程式导航)

4  模糊匹配与精确匹配

5  嵌套路由


1  安装 react-router-dom

目前手脚架中创建后没有react-router-dom,所以我们需要自己安装一下

v6与v5在使用上有些差别,视频中的介绍的是v5的使用方法,我文章中写的是v6的使用方法

之后我们进行导入,BrowerRouter,Route,Routes都不是形参,而是在React中它就叫这个名字

2  简单使用

  • Routes必须放在BrowserRouter中,Route必须放在Routes中
  • 每一次url变化都会按照书写顺序匹配所有的Route
  • BrowerRouter一个React项目中只使用一次,它的内部包含着关于React路由的所有东西
  • 可以使用HashRouter替代BrowerRouter,HashRouter的特点是url中存在 # ,比如 localhost:3000/#/first
  • Route的作用是让某个组件写在某个路由上

打开后可以看到页面一的内容

当访问/second时可以看到页面二的内容

之后我们再使用Link

  • Link写在Routes上方就会渲染再Routes上方,写在Routes下方就会渲染再Routes下方
  • link组件会被渲染成a标签,to属性的内容就是a标签的href

打开后就多了这样一个链接

点击后会将地址转到/second

3  组件中改变路由(编程式导航)

可以使用useNavigate,下面这种方法只能在 函数组件 中使用

  • v5中是通过props改变url,比如 this.props.history = "/login"

点击地址后会改变url

如果你将navigate()的参数搞为-1,那么它就会返回上一个你访问的页面

点击后可以返回

4  模糊匹配与精确匹配

在v5中默认情况下访问 /login会匹配上 /

模糊匹配P97,精确匹配P98 97-匹配模式(1模糊匹配模式)_哔哩哔哩_bilibili

在v6中没有这种问题,默认情况下就是精确匹配

5  嵌套路由

嵌套路由相对于v5有一些区别,我们举个v6的例子,现在我们要有/home/这个路由,也要有/home/news这个路由

文件结构是下面这样的

首先在App.js中创建第一级/home路由,这里一定要加入*

然后在文件夹Home中的index.js创建news路由

文件夹News中的index.js是这样的

/home路由打开后是这样的

访问/home/news,既会出现home的内容,也会出现news的内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Suyuoa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值