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 & DHTML 实例编程(教程)(三)初级实例篇1—上传文件控件实例
Jun 02 Javascript
学习ExtJS border布局
Oct 08 Javascript
基于jquery的一个OutlookBar类,动态创建导航条
Nov 19 Javascript
Three.js源码阅读笔记(Object3D类)
Dec 27 Javascript
js 实现 input type="file" 文件上传示例代码
Aug 07 Javascript
鼠标经过显示二级菜单js特效
Aug 13 Javascript
jQuery如何取id有.的值一般的方法是取不到的
Apr 18 Javascript
jQuery实现动态表单验证时文本框抖动效果完整实例
Aug 21 Javascript
jquery选择器简述
Aug 31 Javascript
Vue表单实例代码
Sep 05 Javascript
layer弹出层显示在top顶层的方法
Sep 11 Javascript
Jquery 动态添加元素并添加点击事件实现过程解析
Oct 12 jQuery
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
mysql5详细安装教程
2007/01/15 PHP
PHP面向对象分析设计的经验原则
2008/09/20 PHP
php排序算法实例分析
2016/10/17 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
javascript 基础篇1 什么是js 建立第一个js程序
2012/03/14 Javascript
JS实现将人民币金额转换为大写的示例代码
2014/02/13 Javascript
JS加载器如何动态加载外部js文件
2016/05/26 Javascript
Angular 路由route实例代码
2016/07/12 Javascript
js拼接html字符串的注意事项
2016/10/13 Javascript
基于Three.js实现360度全景图片
2018/12/30 Javascript
JavaScript 接口原理与用法实例详解
2020/05/12 Javascript
[01:04]DOTA2:伟大的Roshan雕塑震撼来临
2015/01/30 DOTA
[01:19:35]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第二局
2016/03/05 DOTA
[41:54]2018DOTA2亚洲邀请赛 4.1 小组赛A组加赛 TNC vs Liquid
2018/04/03 DOTA
解析Python中的二进制位运算符
2015/05/13 Python
python 随机数使用方法,推导以及字符串,双色球小程序实例
2017/09/12 Python
酷! 程序员用Python带你玩转冲顶大会
2018/01/17 Python
Python装饰器知识点补充
2018/05/28 Python
python opencv摄像头的简单应用
2019/06/06 Python
python3连接kafka模块pykafka生产者简单封装代码
2019/12/23 Python
python使用OpenCV模块实现图像的融合示例代码
2020/04/10 Python
python 进程池pool使用详解
2020/10/15 Python
html5中的input新属性range使用记录
2014/09/05 HTML / CSS
澳大利亚领先的美容护肤品零售商之一:SkincareStore
2018/01/22 全球购物
竞职演讲稿范文
2014/01/11 职场文书
公司离职证明范本
2014/01/13 职场文书
百日安全活动总结
2014/05/04 职场文书
小学校长竞聘演讲稿
2014/05/16 职场文书
2014年医院十一国庆节活动方案
2014/09/15 职场文书
处级领导班子全部召开专题民主生活会情况汇报
2014/09/27 职场文书
工伤事故处理协议书怎么写
2014/10/15 职场文书
长城的导游词
2015/01/30 职场文书
2015新学期校长寄语(3篇)
2015/03/25 职场文书
幼儿园园务工作总结2015
2015/05/18 职场文书
mysql批量新增和存储的方法实例
2021/04/07 MySQL
Python安装及建立虚拟环境的完整步骤
2022/06/25 Servers