详解解决Vue相同路由参数不同不会刷新的问题


Posted in Javascript onOctober 12, 2018

通常情况下我们喜欢设置keepAlive 包裹 router-view

<div id="app">
    <keep-alive>
      <router-view></router-view>
    </keep-alive>
</div>

同时在created 中触发请求,在路由参数不同的情况下并不会执行对应的操作。

解决方法:

1、给 router-view 设置 key 属性为路由的完整路径

<keep-alive>
   <router-view :key="$route.fullPath"></router-view>
</keep-alive>

这种方法我觉得应该是一劳永逸的方法,可能对性能造成一定损耗。不适用于一个tab切换路由并加载列表的组件,会造成页面白屏,dev模式不会自动刷新,是个坑

2、官方给出的方法是通过 watch 监听路由变化,做判断路由路径然后调用响应的方法

watch: {
 '$route' () {
 if (this.$route.path === 'test') {
  this.test();
 }
 }
}
watch: {
 'id': {
 handler: 'test',
 //调用方法
 immediate: true,
 //进入立即执行一次
 }
},

这两种方法推荐第一种,第二种需要先对参数id进行赋值

3、通过组件导航守卫来设置对应的meta 属性

beforeRouteEnter: (to, from, next) = > { // 写在当前组件
 to.meta.keepAlive = false  
 next()
},
 beforeRouteLeave: (to, from, next) = > { //写在前一个组件
 to.meta.keepAlive = false
 next()
},

个人比较喜欢第一种方法

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

Javascript 相关文章推荐
基于JQuery的多标签实现代码
Sep 19 Javascript
jquery跟js初始化加载的多种方法及区别介绍
Apr 02 Javascript
css与javascript跨浏览器兼容性总结
Sep 15 Javascript
jQuery基础的工厂函数以及定时器的经典实例分析
May 20 Javascript
详解AngularJS中的表单验证(推荐)
Nov 17 Javascript
JavaScript获取键盘按键的键码(参照表)
Jan 10 Javascript
详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)
Feb 10 Javascript
jQuery操作之效果详解
May 19 jQuery
用js屏蔽被http劫持的浮动广告实现方法
Aug 10 Javascript
使用Angular Cli如何创建Angular私有库详解
Jan 30 Javascript
node后端服务保活的实现
Nov 10 Javascript
详解React中共享组件逻辑的三种方式
Feb 02 Javascript
详解webpack loader和plugin编写
Oct 12 #Javascript
深入理解Angularjs 脏值检测
Oct 12 #Javascript
vue中render函数的使用详解
Oct 12 #Javascript
详解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
Oct 12 #Javascript
Vue插值、表达式、分隔符、指令知识小结
Oct 12 #Javascript
Vue中 v-if 和v-else-if页面加载出现闪现的问题及解决方法
Oct 12 #Javascript
vue使用v-if v-show页面闪烁,div闪现的解决方法
Oct 12 #Javascript
You might like
php用户注册时常用的检验函数实例总结
2014/12/22 PHP
php的闭包(Closure)匿名函数初探
2016/02/14 PHP
PHPExcel实现的读取多工作表操作示例
2020/04/14 PHP
ArrayList类(增强版)
2007/04/04 Javascript
Javascript &amp; DHTML 实例编程(教程)DOM基础和基本API
2007/06/02 Javascript
关于jquery中全局函数each使用介绍
2013/12/10 Javascript
Javascript实现颜色rgb与16进制转换的方法
2015/04/18 Javascript
微信小程序 页面之间传参实例详解
2017/01/13 Javascript
jQuery图片拖动组件Dropzone用法示例
2017/01/17 Javascript
js的三种继承方式详解
2017/01/21 Javascript
js轮播图透明度切换(带上下页和底部圆点切换)
2017/04/27 Javascript
Angular 表单控件示例代码
2017/06/26 Javascript
JavaScript面向对象精要(下部)
2017/09/12 Javascript
vue基于Element构建自定义树的示例代码
2017/09/19 Javascript
浅谈在vue项目中如何定义全局变量和全局函数
2017/10/24 Javascript
详解vue 动态加载并注册组件且通过 render动态创建该组件
2019/05/30 Javascript
七行JSON代码把你的网站变成移动应用过程详解
2019/07/09 Javascript
详解字典树Trie结构及其Python代码实现
2016/06/03 Python
python实现ID3决策树算法
2017/12/20 Python
python3.6连接MySQL和表的创建与删除实例代码
2017/12/28 Python
django多文件上传,form提交,多对多外键保存的实例
2019/08/06 Python
python实现把两个二维array叠加成三维array示例
2019/11/29 Python
Django REST 异常处理详解
2020/07/15 Python
Python如何进行时间处理
2020/08/06 Python
HTML5里的placeholder属性使用实例和美化显示效果的方法
2014/04/23 HTML / CSS
世界上最大的隐形眼镜商店:1-800 Contacts
2018/11/03 全球购物
人力资源管理专业学生自我评价
2013/11/20 职场文书
应用数学自荐书范文
2013/11/24 职场文书
办护照工作证明范本
2014/01/14 职场文书
投标承诺书范本
2014/03/27 职场文书
《金子》教学反思
2014/04/13 职场文书
2014年党的群众路线整改措施思想汇报
2014/10/12 职场文书
入党积极分子群众意见
2015/06/01 职场文书
分享几个JavaScript运算符的使用技巧
2021/04/24 Javascript
pandas中DataFrame数据合并连接(merge、join、concat)
2021/05/30 Python
nginx配置指令之server_name的具体使用
2022/08/14 Servers