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 相关文章推荐
newxtree.js代码
Mar 13 Javascript
js过滤HTML标签以及空格的思路及代码
May 24 Javascript
jquery实现加载进度条提示效果
Nov 23 Javascript
jQuery实现的指纹扫描效果实例(附演示与demo源码下载)
Jan 26 Javascript
基于Jquery和html5实现炫酷的3D焦点图动画
Mar 02 Javascript
jQuery删除当前节点元素
Dec 07 Javascript
Bootstrap和Java分页实例第二篇
Dec 23 Javascript
AngulerJS学习之按需动态加载文件
Feb 13 Javascript
JS实现预加载视频音频/视频获取截图(返回canvas截图)
Oct 09 Javascript
vue2.0获取鼠标位置的方法
Sep 13 Javascript
vue操作动画的记录animate.css实例代码
Apr 26 Javascript
vue中实现点击按钮滚动到页面对应位置的方法(使用c3平滑属性实现)
Dec 29 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
不用数据库的多用户文件自由上传投票系统(1)
2006/10/09 PHP
PHP处理Json字符串解码返回NULL的解决方法
2014/09/01 PHP
vmware linux系统安装最新的php7图解
2019/04/14 PHP
关于setInterval、setTimeout在jQuery中的使用注意事项
2011/09/28 Javascript
jQuery 1.8 Release版本发布了
2012/08/14 Javascript
JavaScript高级程序设计 阅读笔记(十四) js继承机制的实现
2012/08/14 Javascript
JavaScript用Number方法实现string转int
2014/05/13 Javascript
jQuery表单域属性过滤器用法分析
2015/02/10 Javascript
JavaScript实现输入框与清空按钮联动效果
2016/09/09 Javascript
js简单正则验证汉字英文及下划线的方法
2016/11/28 Javascript
Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)
2017/05/09 Javascript
详解AngularJS1.6版本中ui-router路由中/#!/的解决方法
2017/05/22 Javascript
js如何编写简单的ajax方法库
2017/08/02 Javascript
Vue 表单控件绑定的实现示例
2017/08/11 Javascript
小程序清理本地缓存的方法
2018/08/17 Javascript
Vue-cli3简单使用(图文步骤)
2019/04/30 Javascript
浅谈layui 表单元素的选中问题
2019/10/25 Javascript
nodejs使用socket5进行代理请求的实现
2020/02/21 NodeJs
vue+高德地图实现地图搜索及点击定位操作
2020/09/09 Javascript
Vue项目打包部署到apache服务器的方法步骤
2021/02/01 Vue.js
vue 根据选择的月份动态展示日期对应的星期几
2021/02/06 Vue.js
python使用psutil模块获取系统状态
2016/08/27 Python
python 统计列表中不同元素的数量方法
2018/06/29 Python
澳大利亚办公室装修:JasonL Office Furniture
2019/06/25 全球购物
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2014/01/19 面试题
工作表扬信的范文
2014/01/10 职场文书
《花的勇气》教后反思
2014/02/12 职场文书
市场专员岗位职责
2014/02/14 职场文书
教师个人考察材料
2014/12/16 职场文书
圣诞节开幕词
2015/01/29 职场文书
校运会广播稿
2015/08/19 职场文书
2016年学校综治宣传月活动总结
2016/03/16 职场文书
vue实现简单数据双向绑定
2021/04/28 Vue.js
Python如何配置环境变量详解
2021/05/18 Python
解决SpringCloud Feign传对象参数调用失败的问题
2021/06/23 Java/Android
create-react-app开发常用配置教程
2022/06/25 Javascript