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 相关文章推荐
jQuery 源码分析笔记(3) Deferred机制
Jun 19 Javascript
JS.findElementById()使用介绍
Sep 21 Javascript
用js替换除数字与逗号以外的所有字符的代码
Jun 07 Javascript
JS实现左右无缝轮播图代码
May 01 Javascript
JS Attribute属性操作详解
May 19 Javascript
javascript基础知识
Jun 07 Javascript
Three.js如何用轨迹球插件(trackball)增加对模型的交互功能详解
Sep 25 Javascript
详解VUE 对element-ui中的ElTableColumn扩展
Mar 28 Javascript
vue基于两个计算属性实现选中和全选功能示例
Feb 08 Javascript
Vue+Element UI+vue-quill-editor富文本编辑器及插入图片自定义
Aug 20 Javascript
原生JavaScript实现留言板
Jan 10 Javascript
vue组件的路由高亮问题解决方法
May 11 Vue.js
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
Windows中使用计划任务自动执行PHP程序实例
2014/05/09 PHP
10个实用的PHP正则表达式汇总
2014/10/23 PHP
php 获取文件行数的方法总结
2016/10/11 PHP
接收键盘指令的脚本
2006/06/26 Javascript
JavaScript 拾漏补遗
2009/12/27 Javascript
用Js实现的动态增加表格示例自己写的
2013/10/21 Javascript
javascript使用onclick事件改变选中行的颜色
2013/12/30 Javascript
微信分享的标题、缩略图、连接及描述设置方法
2014/10/14 Javascript
nodejs中实现路由功能
2014/12/29 NodeJs
ajax跨域调用webservice的实现代码
2016/05/09 Javascript
Bootstrap实现弹性搜索框
2016/07/11 Javascript
巧用jQuery选择器提高写表单效率的方法
2016/08/19 Javascript
vue-router路由懒加载和权限控制详解
2017/12/13 Javascript
JS实现网页烟花动画效果
2020/03/10 Javascript
Python脚本判断 Linux 是否运行在虚拟机上
2015/04/25 Python
python urllib urlopen()对象方法/代理的补充说明
2017/06/29 Python
Python数据结构与算法之使用队列解决小猫钓鱼问题
2017/12/14 Python
opencv python 傅里叶变换的使用
2018/07/21 Python
python实现大文件分割与合并
2019/07/22 Python
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
2020/02/27 Python
使用python脚本自动生成K8S-YAML的方法示例
2020/07/12 Python
Python logging模块原理解析及应用
2020/08/13 Python
解决Pyinstaller打包软件失败的一个坑
2021/03/04 Python
canvas三角函数模拟水波效果的示例代码
2018/07/03 HTML / CSS
英国家具、照明、家居用品网上商店:Wayfair.co.uk
2020/02/13 全球购物
北京鼎普科技股份有限公司软件测试面试题
2012/04/07 面试题
函授毕业生自我鉴定
2013/11/06 职场文书
上课迟到检讨书100字
2014/01/11 职场文书
教学大赛获奖感言
2014/01/15 职场文书
企业内部培训方案
2014/02/04 职场文书
工地标语大全
2014/06/18 职场文书
处罚决定书范文
2015/06/24 职场文书
mysql批量新增和存储的方法实例
2021/04/07 MySQL
python opencv检测直线 cv2.HoughLinesP的实现
2021/06/18 Python
AudioContext 实现音频可视化(web技术分享)
2022/02/24 Javascript
动画《新网球王子 U-17 WORLD CUP》希腊队PV公开
2022/04/02 日漫