编程式路由导航

如果想使用按钮实现路由跳转,有两种形式,可回退和不可回退两种:

由于history被放在props中,可以直接通过this.props.history的push和replace改变

  • 可回退:this.props.history.replace(`/home/message/detail`)
  • 不可回退:this.props.history.push(`/home/message/detail`)

同样还有原生的go forward back函数

借助this.prosp.history对象上的API对操作路由跳转、前进、后退

-this.prosp.history.push()

-this.prosp.history.replace()

-this.prosp.history.goBack()

-this.prosp.history.goForward()

-this.prosp.history.go()

withRouter

这些方法只有路由组件有,因为只有路由组件才有下面的属性:

那如果我希望在非路由组件 有props中的history属性怎么办呢?

withRouter可以加工一般组件,让一般组件具备路由组件所特有的API

withRouter的返回值是一个新组件

携带参数

如果是想携带参数,有三种方式:

①params(下图绿色)

②search(下图棕色)

③state(下图橙色)

应用:

有了这种方式,我们就可以在进入某个组件的时候让他默认跳转一个页面:

可以写在生命周期函数componentDidMount中

参考链接:

尚硅谷2021版React技术全家桶全套完整版(零基础入门到精通/男神天禹老师亲授)_哔哩哔哩_bilibili

编程式路由导航和withRouter相关推荐

  1. 【React路由】编程式路由导航和withRouter的使用——push / replace

    文章目录

  2. Day31_编程式路由导航

    提出需求 1.观察this.$router 上有什么   (push   replace) 2.实现this$router.push查看 1>在message组件里面: 3.实现this$rou ...

  3. Vue 编程式路由导航

    文章目录 router- link的replace属性 编程式路由导航 缓存路由组件 两个新的生命钩子 router- link的replace属性 1.作用:控制路由跳转时操作浏览器历史记录的模式 ...

  4. Vue -- 编程式路由导航

    文章目录 1. 声明式导航 & 编程式导航 1.1 声明式导航 1.2 编程式导航 2. vue-router 中的编程式导航 API 2.1 常用的编程式导航 API 2.2 \$route ...

  5. Vue声明式路由导航和编程式路由导航的优缺点及实现方法

    文章目录 前言 路由实现 1.目标 2.前置条件 <1>安装vue-router插件 <2>写个用于转跳的组件页 <3>写路由文件 <4>写路由锚点 3 ...

  6. 编程式路由导航连续跳转出现NavigationDuplicated报错的问题

    1.错误示例 如在多次点击搜索按钮进行编程式路由跳转时控制台会出现报错NavigationDuplicated 2.分析错误产生原因 原因是在vue-router3.1.0之后, 引入了promise ...

  7. Vue教程6【完结】【vue-router】路由,路由传参,编程式路由导航,缓存路由组件,路由守卫,路由模式,vue ui组件库

    vue-router 了解 vue插件库,用来实现SPA应用(单页面) 整个页面只有一个完整的页面 点击页面中导航链接,不会刷新页面,只做局部更新 数据通过ajax请求 路由的理解 一组映射关系(ke ...

  8. vue中路由传参方式之二(this.$router.push进行编程式路由跳转传参)

    this.$router.push进行编程式路由跳转传参 router中路由配置 组件home点击传参 组件homeDetails接受参数 router中路由配置 params第一种传参路由配置 {p ...

  9. vue-router详尽:编程式导航、路由重定向、动态路由匹配、路由别名、嵌套路由、命名视图

    vue-router编程式导航 在vue项目中经常用到this.$router.push() 和 this.$router.replace() 方法进行路由跳转就是编程式导航... 通俗理解编程式导航 ...

最新文章

  1. Flask上下文管理源码分析
  2. Nexus刷官方下载的映像_occam
  3. STL的tuple集合对象
  4. Hybris做增强的两种方式:In App Extension和Side by Side Extension
  5. high severity error mysql_pg将运行日志导入表中的方法及时区问题解决
  6. python适合开发游戏吗_用python能制作游戏吗
  7. 多个表添加几个相同的字段
  8. python鞋子_python
  9. 用python实现excel 14个常用操作_用Python实现excel 14个常用操作
  10. canvas - drawImage()方法绘制图片不显示的问题
  11. Leetcode431.将N叉树编码为二叉树(golang)
  12. 滤波器原理及其作用计算机网络,数字滤波器
  13. ctfmon.exe开机无法自动启动
  14. 互联网大佬“舌战”996:马云、刘强东、周鸿祎、张朝阳、李国庆,你站谁?
  15. 车企号脉,资本试药,出行服务带病也要上场
  16. hazelcast java_hazelcast初探
  17. 如何用云服务器进行深度学习
  18. [高数][高昆轮][高等数学上][第一章-函数与极限]08.函数的连续性与间断点
  19. 嵌入式入门学习笔记1:资料收集
  20. 用excel来构建柯布-道格拉斯Cobb-Douglas生产函数的可视化

热门文章

  1. 使用npm命令提示: ‘npm‘ 不是内部或外部命令,也不是可运行的程序的处理方法
  2. 生命进化与宇宙意识——柏格森的生命哲学
  3. mysql myisam_MySQL存储引擎之MyISAM
  4. mysql 主主同步失败_MySQL 主主复制失败问题
  5. The project was not built since the source file could not be read
  6. css3 div阴影样式js特效
  7. WPF XAML概览
  8. adobe xd是什么_为什么我不会切换到Adobe XD
  9. 计算机公式YEAR的含义是,Excel 中函数YEAR是什么意思,year是什么意思怎么读通俗点...
  10. 计算机搜索功能卡,电脑卡