详解解决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遍历input取得input的name
Apr 27 Javascript
改善用户体验的五款jQuery插件分享
May 22 Javascript
教你如何使用firebug调试功能了解javascript闭包和this
Mar 04 Javascript
深入剖析JavaScript中的函数currying柯里化
Apr 29 Javascript
JavaScript mixin实现多继承的方法详解
Mar 30 Javascript
基于vue2实现左滑删除功能
Nov 28 Javascript
ajax请求+vue.js渲染+页面加载的示例
Feb 11 Javascript
jQuery插件jsonview展示json数据
May 26 jQuery
es6数据变更同步到视图层的方法
Mar 04 Javascript
Electron-vue开发的客户端支付收款工具的实现
May 24 Javascript
微信小程序 云开发模糊查询实现解析
Sep 02 Javascript
jQuery实现的图片点击放大缩小功能案例
Jan 02 jQuery
详解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/01/07 PHP
PHP中创建图像并绘制文字的例子
2014/11/19 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
2016/07/14 PHP
PHP Ajax JavaScript Json获取天气信息实现代码
2016/08/17 PHP
Laravel 模型关联基础教程详解
2019/09/17 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
2019/10/08 PHP
基于jquery的让页面控件不可用的实现代码
2010/04/27 Javascript
基于jquery的仿百度搜索框效果代码
2011/04/11 Javascript
移动设备web开发首选框架:zeptojs介绍
2015/01/29 Javascript
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
2018/01/25 jQuery
微信小程序显示倒计时功能示例【测试可用】
2018/12/03 Javascript
Node4-5静态资源服务器实战以及优化压缩文件实例内容
2019/08/29 Javascript
keep-alive不能缓存多层级路由菜单问题解决
2020/03/10 Javascript
python merge、concat合并数据集的实例讲解
2018/04/12 Python
python 利用栈和队列模拟递归的过程
2018/05/29 Python
Selenium控制浏览器常见操作示例
2018/08/13 Python
Python二叉搜索树与双向链表转换算法示例
2019/03/02 Python
解决Django连接db遇到的问题
2019/08/29 Python
将python2.7添加进64位系统的注册表方式
2019/11/20 Python
Python中包的用法及安装
2020/02/11 Python
Python应用实现双指数函数及拟合代码实例
2020/06/19 Python
Pycharm 2020.1 版配置优化的详细教程
2020/08/07 Python
基于CSS3实现立方体自转效果
2016/03/01 HTML / CSS
html5的websockets全双工通信详解学习示例
2014/02/26 HTML / CSS
laravel使用redis队列实例讲解
2021/03/23 PHP
高级销售员求职信
2013/10/25 职场文书
中级会计职业生涯规划书
2014/03/01 职场文书
幼儿园大班评语大全
2014/04/17 职场文书
2015年医院护理部工作总结
2015/04/23 职场文书
药房管理制度范本
2015/08/06 职场文书
四群教育工作总结
2015/08/10 职场文书
不知如何爱孩子,这些方法教会您
2019/08/06 职场文书
Navicat连接MySQL错误描述分析
2021/06/02 MySQL
Python提取PDF指定内容并生成新文件
2021/06/09 Python
MySQL数据库必备之条件查询语句
2021/10/15 MySQL
浅谈Node的内存泄露问题
2022/05/06 NodeJs