当前位置: 首页 > news >正文

Vue2移动端项目使用$router.go(-1)不生效问题记录

目录

1、this.$router.go(-1) 改成 this.$router.back()

2、存储 from.path,使用 this.$router.push

3、hash模式中使用h5新增的onhashchange事件做hack处理

4、this.$router.go(-1) 之前添加一个 replace 方法


问题背景 :

在 Vue2 的一个移动端开发项目中,拆封了一个公共头部组件 components 下的 Header ,

里面使用了 Vant2 组件库 的 <van-nav-bar> 组件,组件有个点击左侧 “ 返回 ” 按钮的方法,

会调用 @click-left="onClickLeft" , onClickLeft 方法里使用了 this.$router.go(-1) ,

返回上一级路由页面的 Vue2 语法,结果没有返回上一级页面,而且路由地址眼看着改变了,

但是页面展示还是停留在当前页面,需要手动刷新才能渲染跳转后的页面。

解决起来一头雾水,所以只好百度咯 ~ 这里只是给自己留一个记录方便看 :


1、this.$router.go(-1) 改成 this.$router.back()

this.$router.go(-1) 失效 ( 路由改变了,界面未刷新)


2、存储 from.path,使用 this.$router.push


3、hash模式中使用h5新增的onhashchange事件做hack处理

// 检测浏览器路由改变页面不刷新问题,hash模式的工作原理是hashchange事件
window.addEventListener('hashchange', () => {let currentPath = window.location.hash.slice(1)if (this.$route.path !== currentPath) {this.$router.push(currentPath)}
}, false)

4、this.$router.go(-1) 之前添加一个 replace 方法


以上就是我百度到的各种解决办法啦 ,小伙伴们可自行测试选取哦~

这里我就直接使用了第1种方法,改成了  this.$router.back() ,看着好像也 OK 。

http://www.lryc.cn/news/285426.html

相关文章:

  • ChatGPT与文心一言:AI助手之巅的对决
  • 前端实现贪吃蛇功能
  • 文件操作(上)
  • 用CHAT写年终总结
  • day01 深度学习介绍
  • k8s 部署 Nginx 并代理到tomcat
  • 医学图像的数据增强技术 --- 切割-拼接数据增强(CS-DA)
  • git克隆/拉取报错过早的文件结束符(EOF)的原因及解决
  • 【ARM 嵌入式 编译系列 2.5 -- GCC 编译参数学习 --specs=nano.specs选项 】
  • C语言大师(5)构造函数和析构函数
  • 安全审查常见要求
  • 最新 生成pdf文字和表格
  • 安全基础~攻防特性3
  • Windows7关闭谷歌浏览器提示“若要接收后续 Google Chrome 更新,您需使用 Windows 10 或更高版本”的方法
  • [一]ffmpeg音视频解码
  • k8s-认证授权 14
  • 在全志H616核桃派上实现USB摄像头的OpenCV颜色检测
  • mac安装部署gitbook教程
  • 有关软件测试的,任何时间都可以,软件测试主要服务项目:测试用例 报告 计划
  • 快乐过寒假,安全不放假
  • qt学习:模仿qq界面+添加资源+无边框界面+修改样式
  • 【Linux】基本指令收尾
  • 精准核酸检测 - 华为OD统一考试
  • LINUX文件fd(file descriptor)文件描述符
  • SpringMVC 的理解
  • SpringBoot 3.1.7 集成Sentinel
  • Elastic Stack 8.12:通过对 ES|QL 等的改进增强了向量搜索
  • 结构体的内存对齐(计算题常考点)
  • 设置Json对象输出字段顺序
  • 当 OpenTelemetry 遇上阿里云 Prometheus