vue通过路由实现页面刷新的方法


Posted in Javascript onJanuary 25, 2018

vue 开发微信商城项目,

需求如下:

购物车页面跳转到详情页,购物车页面包含了多个组件,点击结算跳转到订单页面,从订单返回时,购物车页面没有刷新,由于购物车组件之间通过bus实现事件传递,页面跳转(非物理返回)无法触发beforeDestroy方法,则无法再此方法中销毁bus方法

beforeDestroy() {
  this.$root.Bus.$off('judge')
  this.$root.Bus.$off('refreshDetail')
  this.$root.Bus.$off('clearAll')
  this.$root.Bus.$off('upDataCart')
 },

无奈,通过beforeRouteLeave来销毁

beforeRouteLeave(to, from, next) {
  this.$root.Bus.$off('judge')
  this.$root.Bus.$off('refreshDetail')
  this.$root.Bus.$off('clearAll')
  this.$root.Bus.$off('upDataCart')

  next()
 },

同样的,物理返回时无法触发购物车的created方法,则无法触发bus的$on方法

归根结底,物理返回时刷新页面则可以处理此问题

思路一

beforeRouteEnter(to, from, next) {
   next(()=>{
     window.location.reload()
   })
  },

此方法理论貌似可行,但是页面会狂刷不止,

最后采用了思路二,貌似是一个很low的方法,但是解决了实际问题

this.$router.replace({ name: 'cart' })// 处理返回刷新问题
   this.$router.push({
    path: '/order/order_sure',
    query: {
     sku: sku_str,
     cart: 'cart'
    }
   })

页面跳转前先通过路由replace到当前页,再跳转到订单页面,返回可以自动刷新了,这个方法并不理想,如果您有更好的方法,欢迎分享

有专门的方法处理此问题,在购物车页面,添加如下代码即可

// 销毁组件,返回刷新
 deactivated() {
  this.$destroy()
 },

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript实现unicode和字符的互相转换
Jul 18 Javascript
javascript indexOf函数使用说明
Jul 03 Javascript
js Object2String方便查看js对象内容
Nov 24 Javascript
js图片轮播特效代码分享
Sep 07 Javascript
javascript动态生成树形菜单的方法
Nov 14 Javascript
Jquery调用iframe父页面中的元素及方法
Aug 23 Javascript
bootstrap实现动态进度条效果
Mar 08 Javascript
JavaScript 程序错误Cannot use 'in' operator to search的解决方法
Jul 10 Javascript
详解ECMAScript typeof用法
Jul 25 Javascript
值得收藏的八个常用的js正则表达式
Oct 19 Javascript
浅谈Vue.js 关于页面加载完成后执行一个方法的问题
Apr 01 Javascript
在layui中layer弹出层点击事件无效的解决方法
Sep 05 Javascript
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
Jan 25 #jQuery
JavaScript实现职责链模式概述
Jan 25 #Javascript
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
Jan 25 #jQuery
解决Jquery下拉框数据动态获取的问题
Jan 25 #jQuery
vue引入新版 vue-awesome-swiper插件填坑问题
Jan 25 #Javascript
vue better-scroll插件使用详解
Jan 25 #Javascript
jquery 获取索引值在一定范围的列表方法
Jan 25 #jQuery
You might like
PHP概述.
2006/10/09 PHP
php代码把全角数字转为半角数字
2007/12/10 PHP
PHP使用mysqli操作MySQL数据库的简单方法
2017/02/04 PHP
PHP随机获取未被微信屏蔽的域名(微信域名检测)
2017/03/19 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
PHP 7.4中使用预加载的方法详解
2019/07/08 PHP
斜45度寻路实现函数
2009/08/20 Javascript
Jquery iframe内部出滚动条
2010/02/11 Javascript
javascript 实现简单的table排序及table操作练习
2012/12/28 Javascript
js onload处理html页面加载之后的事件
2013/10/30 Javascript
js Dialog 去掉右上角的X关闭功能
2014/04/23 Javascript
js实现索引图片切换效果
2015/11/21 Javascript
jquery实现简单的遮罩层
2016/01/08 Javascript
理解javascript中的MVC模式
2016/01/28 Javascript
使用vux实现上拉刷新功能遇到的坑
2018/02/08 Javascript
jQuery 导航自动跟随滚动的实现代码
2018/05/30 jQuery
使用vue点击li,获取当前点击li父辈元素的属性值方法
2018/09/12 Javascript
js判断在哪个浏览器打开项目的方法
2020/01/21 Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
2020/11/09 Javascript
vant 解决tab切换插件标题样式自定义的问题
2020/11/13 Javascript
Python标准库之随机数 (math包、random包)介绍
2014/11/25 Python
Python中的装饰器用法详解
2015/01/14 Python
python 打印对象的所有属性值的方法
2016/09/11 Python
解决python3捕获cx_oracle抛出的异常错误问题
2018/10/18 Python
Django 通过JS实现ajax过程详解
2019/07/30 Python
爬虫代理池Python3WebSpider源代码测试过程解析
2019/12/20 Python
浅析Python面向对象编程
2020/07/10 Python
Python使用Pygame绘制时钟
2020/11/29 Python
电子狗项圈:eDog Australia
2019/12/04 全球购物
Linux中如何用命令创建目录
2016/12/02 面试题
行政助理岗位职责范文
2013/12/03 职场文书
企业安全生产目标责任书
2014/07/23 职场文书
水电维修专业推荐信
2014/09/06 职场文书
党员个人自我评价
2015/03/03 职场文书
Java面试题冲刺第十五天--设计模式
2021/08/07 面试题
Go归并排序算法的实现方法
2022/04/06 Golang