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 相关文章推荐
Mac地址验证的javascript代码
Nov 09 Javascript
JavaScript判断表单中多选框checkbox选中个数的方法
Aug 17 Javascript
有关Promises异步问题详解
Nov 13 Javascript
深入理解jQuery之防止冒泡事件
May 24 Javascript
全面解析JavaScript中apply和call以及bind(推荐)
Jun 15 Javascript
vue封装第三方插件并发布到npm的方法
Sep 25 Javascript
详解搭建es6+devServer简单开发环境
Sep 25 Javascript
angular ng-model 无法获取值的处理方法
Oct 02 Javascript
css配合JavaScript实现tab标签切换效果
Oct 11 Javascript
vue+echarts实现动态绘制图表及异步加载数据的方法
Oct 17 Javascript
jQuery创建折叠式菜单
Jun 15 jQuery
JavaScript代码异常监控实现过程详解
Feb 17 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缓存技术详细总结
2013/08/07 PHP
php格式输出文件var_export函数实例
2014/11/15 PHP
轻松掌握php设计模式之访问者模式
2016/09/23 PHP
php7安装mongoDB扩展的方法分析
2017/08/02 PHP
myeclipse安装jQuery插件的方法
2011/03/29 Javascript
JS target与currentTarget区别说明
2011/08/28 Javascript
Function.prototype.bind用法示例
2013/09/16 Javascript
JQuery EasyUI 日期控件如何控制日期选择区间
2014/05/05 Javascript
JS限制文本框只能输入数字和字母方法
2015/02/28 Javascript
js实时获取窗口大小变化的实例代码
2016/11/18 Javascript
Vue.js在使用中的一些注意知识点
2017/04/29 Javascript
利用yarn代替npm管理前端项目模块依赖的方法详解
2017/09/04 Javascript
angular4中关于表单的校验示例
2017/10/16 Javascript
通过JS深度判断两个对象字段相同
2019/06/14 Javascript
简单了解微信小程序 e.target与e.currentTarget的不同
2019/09/27 Javascript
Angular+Ionic使用queryParams实现跳转页传值的方法
2020/09/05 Javascript
浅析Python中的多重继承
2015/04/28 Python
Apache如何部署django项目
2017/05/21 Python
python 实现将字典dict、列表list中的中文正常显示方法
2018/07/06 Python
Python实现的大数据分析操作系统日志功能示例
2019/02/11 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
在vscode中配置python环境过程解析
2019/09/28 Python
Python使用sys.exc_info()方法获取异常信息
2020/07/23 Python
python中字符串的编码与解码详析
2020/12/03 Python
python中实现栈的三种方法
2020/12/19 Python
详解Python Celery和RabbitMQ实战教程
2021/01/20 Python
韩国三星集团旗下时尚品牌官网:SSF SHOP
2016/08/02 全球购物
北美大型运动类产品商城:Champs Sports
2017/01/12 全球购物
小学教师的个人自我鉴定
2013/10/26 职场文书
工业学校毕业生自荐书
2014/01/03 职场文书
校园安全检查制度
2014/02/03 职场文书
理想点亮人生演讲稿
2014/05/21 职场文书
2014年幼儿园教研工作总结
2014/12/04 职场文书
银行员工考核评语
2014/12/31 职场文书
Python词云的正确实现方法实例
2021/05/08 Python
Spring Cloud OAuth2实现自定义token返回格式
2022/06/25 Java/Android