详解解决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操作checkbox选择(list/table)
Apr 07 Javascript
js获取视频时长代码
Apr 10 Javascript
javascript操作excel生成报表示例
May 08 Javascript
使用jquery获取url及url参数的简单实例
Jun 14 Javascript
JS获取鼠标选中的文字
Aug 10 Javascript
详解Vue.directive 自定义指令
Mar 27 Javascript
基于vue-cli、elementUI的Vue超简单入门小例子(推荐)
Apr 17 Javascript
Electron + vue 打包桌面操作流程详解
Jun 24 Javascript
layui使用表格渲染获取行数据的例子
Sep 13 Javascript
在vue+element ui框架里实现lodash的debounce防抖
Nov 13 Javascript
解决Nuxt使用axios跨域问题
Jul 06 Javascript
Vue 禁用浏览器的前进后退操作
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 类型转换函数intval
2009/06/20 PHP
深入apache host的配置详解
2013/06/09 PHP
CI框架中zip类应用示例
2014/06/17 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
2016/12/15 PHP
thinkPHP5.0框架命名空间详解
2017/03/18 PHP
TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例
2018/09/03 PHP
PHP信号处理机制的操作代码讲解
2019/04/19 PHP
使用JSLint提高JS代码质量方法分享
2013/12/16 Javascript
JavaScript中对循环语句的优化技巧深入探讨
2014/06/06 Javascript
jQuery animate和CSS3相结合实现缓动追逐效果附源码下载
2016/04/18 Javascript
JavaScript sort数组排序方法和自我实现排序方法小结
2016/06/06 Javascript
js智能获取浏览器版本UA信息的方法
2016/08/08 Javascript
JS实现列表的响应式排版(推荐)
2016/09/01 Javascript
深入理解JS实现快速排序和去重
2016/10/17 Javascript
NodeJs的fs读写删除移动监听
2017/04/28 NodeJs
老生常谈js数据类型
2017/08/03 Javascript
浅谈angular4实际项目搭建总结
2017/12/01 Javascript
Vue 组件传值几种常用方法【总结】
2018/05/28 Javascript
JavaScript中十种一步拷贝数组的方法实例详解
2019/04/22 Javascript
[00:48]食人魔魔法师至宝“金鹏之幸”全新模型和自定义特效展示
2019/12/19 DOTA
Python中处理时间的几种方法小结
2015/04/09 Python
pycharm设置注释颜色的方法
2018/05/23 Python
python操作mysql代码总结
2018/06/01 Python
Django框架序列化与反序列化操作详解
2019/11/01 Python
parser.add_argument中的action使用
2020/04/20 Python
详解Python的爬虫框架 Scrapy
2020/08/03 Python
css3 自定义字体font-face使用介绍
2014/05/14 HTML / CSS
利用纯css3实现的文字亮光特效的代码演示
2014/11/27 HTML / CSS
逃课上网检讨书
2014/02/20 职场文书
新手上路标语
2014/06/20 职场文书
介绍信的格式
2015/01/30 职场文书
幼儿园小班个人总结
2015/02/12 职场文书
会计求职自荐信范文
2015/03/04 职场文书
2015年精神文明建设工作总结
2015/04/21 职场文书
运动会运动员赞词
2015/07/22 职场文书
MySQL脏读,幻读和不可重复读
2022/05/11 MySQL