详解解决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学习笔记之控制页面实现代码
Feb 27 Javascript
js 控制下拉菜单刷新的方法
Mar 03 Javascript
简单的JS时钟实例讲解
Jan 13 Javascript
Js删除数组中某一项或几项的几种方法(推荐)
Jul 27 Javascript
ES6新特征数字、数组、字符串
Oct 01 Javascript
jQuery Mobile和HTML5开发App推广注册页
Nov 07 Javascript
Vue.js实现简单ToDoList 前期准备(一)
Dec 01 Javascript
详解使用Node.js 将txt文件转为Excel文件
Jul 05 Javascript
vue-router 起步步骤详解
Mar 26 Javascript
Ajax请求时无法重定向的问题解决代码详解
Jun 21 Javascript
解决Echarts2竖直datazoom滑动后显示数据不全的问题
Jul 20 Javascript
Node快速切换版本、版本回退(降级)、版本更新(升级)
Jan 07 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
星际争霸秘籍
2020/03/04 星际争霸
php中配置文件操作 如config.php文件的读取修改等操作
2012/07/07 PHP
php笔记之:数据类型与常量的使用分析
2013/05/14 PHP
PHP内核探索:哈希表碰撞攻击原理
2015/07/31 PHP
PHP如何通过传引用的思想实现无限分类(代码简单)
2015/10/13 PHP
利用phpexcel对数据库数据的导入excel(excel筛选)、导出excel
2017/04/27 PHP
PHP实现SMTP邮件的发送实例
2018/09/27 PHP
Exjs 入门篇
2010/04/07 Javascript
Firefox中autocomplete=&quot;off&quot; 设置不起作用Bug的解决方法
2011/03/25 Javascript
JavaScript高级程序设计(第3版)学习笔记4 js运算符和操作符
2012/10/11 Javascript
悬浮数字的实现案例
2014/02/19 Javascript
JavaScript模块随意拖动示例代码
2014/05/27 Javascript
jQuery中[attribute*=value]选择器用法实例
2014/12/31 Javascript
JavaScript学习笔记之JS函数
2015/01/22 Javascript
JavaScript中的toLocaleDateString()方法使用简介
2015/06/12 Javascript
jQuery实现的进度条效果
2015/07/15 Javascript
javascript实现鼠标移到Image上方时显示文字效果的方法
2015/08/07 Javascript
Bootstrap每天必学之导航条
2015/11/27 Javascript
BootStrap 弹出层代码
2017/02/09 Javascript
详解vue表单验证组件 v-verify-plugin
2017/04/19 Javascript
mpvue网易云短信接口实现小程序短信登录的示例代码
2020/04/03 Javascript
Python实现基于权重的随机数2种方法
2015/04/28 Python
Python设计模式之适配器模式原理与用法详解
2019/01/15 Python
Python包和模块的分发详细介绍
2020/06/19 Python
python利用os模块编写文件复制功能——copy()函数用法
2020/07/13 Python
实习生自荐信范文分享
2013/11/27 职场文书
统计学专业毕业生的自我评价分享
2013/11/28 职场文书
大课间活动制度
2014/01/18 职场文书
《天安门广场》教学反思
2014/04/23 职场文书
贷款委托书
2014/08/01 职场文书
政风行风评议工作总结
2014/10/21 职场文书
2015年医生个人工作总结
2015/04/25 职场文书
嘉年华活动新闻稿
2015/07/17 职场文书
年中了,该如何写好个人述职报告?
2019/07/02 职场文书
在校大学生才艺比赛策划书怎么写?
2019/08/26 职场文书
redis连接被拒绝的解决方案
2021/04/12 Redis