详解解决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 相关文章推荐
常用参考资料(手册)下载或者链接
Jul 22 Javascript
javascript复制对象使用说明
Jun 28 Javascript
TypeOf这些知识点你了解吗
Feb 21 Javascript
微信小程序 this和that详解及简单实例
Feb 13 Javascript
利用forever和pm2部署node.js项目过程
May 10 Javascript
详解vuejs之v-for列表渲染
Jun 22 Javascript
为输入框加入数字js校验代码分享
Nov 02 Javascript
vue中使用heatmapjs的示例代码(结合百度地图)
Sep 05 Javascript
javascript中call()、apply()的区别
Mar 21 Javascript
Weex开发之地图篇的具体使用
Oct 16 Javascript
原生JS实现萤火虫效果
Mar 07 Javascript
JavaScript逻辑运算符相关总结
Sep 04 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中=赋值操作符对不同数据类型的不同行为
2011/01/02 PHP
写一段简单的PHP建立文件夹代码
2015/01/06 PHP
支付宝服务窗API接口开发php版本
2016/07/20 PHP
php+mongodb判断坐标是否在指定多边形区域内的实例
2016/10/28 PHP
PHP封装返回Ajax字符串和JSON数组的方法
2017/02/17 PHP
laravel框架实现敏感词汇过滤功能示例
2020/02/15 PHP
增强的 JavaScript 的 trim 函数的代码
2007/08/13 Javascript
JavaScript通过字符串调用函数的实现方法
2015/03/18 Javascript
如何解决ligerUI布局时Center中的Tab高度大小
2015/11/24 Javascript
javascript正则表达式之分组概念与用法实例
2016/06/16 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
2016/07/12 Javascript
Bootstrap按钮组实例详解
2017/07/03 Javascript
详解Vuejs2.0 如何利用proxyTable实现跨域请求
2017/08/03 Javascript
AngularJS实现表单元素值绑定操作示例
2017/10/11 Javascript
vue生成token保存在客户端localStorage中的方法
2017/10/25 Javascript
微信小程序实现循环动画效果
2018/07/16 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
2018/12/13 Javascript
layui radio点击事件实现input显示和隐藏的例子
2019/09/02 Javascript
Vue组件间数据传递的方式(3种)
2020/07/13 Javascript
详解ES6 中的Object.assign()的用法实例代码
2021/01/11 Javascript
用python登录Dr.com思路以及代码分享
2014/06/25 Python
你所不知道的Python奇技淫巧13招【实用】
2016/12/14 Python
Django框架教程之正则表达式URL误区详解
2018/01/28 Python
基于循环神经网络(RNN)实现影评情感分类
2018/03/26 Python
使用Python通过win32 COM实现Word文档的写入与保存方法
2018/05/08 Python
Python之时间和日期使用小结
2019/02/14 Python
关于python导入模块import与常见的模块详解
2019/08/28 Python
通过 Django Pagination 实现简单分页功能
2019/11/11 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
2020/02/03 Python
英国最全面的橄榄球联盟门票网站:Live Rugby Tickets
2018/10/06 全球购物
实现向右循环移位
2014/07/31 面试题
应届生会计求职信
2013/11/11 职场文书
小学大队委竞选口号
2015/12/25 职场文书
创业计划书之家教中心
2019/09/25 职场文书
mysql死锁和分库分表问题详解
2021/04/16 MySQL
Django rest framework如何自定义用户表
2021/06/09 Python