详解解决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 相关文章推荐
谈谈我对JavaScript原型和闭包系列理解(随手笔记9)
Dec 24 Javascript
全面解析Bootstrap布局组件应用
Feb 22 Javascript
JSON字符串和对象相互转换实例分析
Jun 16 Javascript
读Javascript高性能编程重点笔记
Dec 21 Javascript
jQuery Form表单取值的方法
Jan 11 Javascript
AngularJS框架中的双向数据绑定机制详解【减少需要重复的开发代码量】
Jan 19 Javascript
详解angularjs中如何实现控制器和指令之间交互
May 31 Javascript
BootstrapTable加载按钮功能实例代码详解
Sep 22 Javascript
js 只比较时间大小的实例
Oct 26 Javascript
详解Axios统一错误处理与后置
Sep 26 Javascript
JavaScript使用类似break机制中断forEach循环的方法
Nov 13 Javascript
JS闭包原理及其使用场景解析
Dec 03 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
Protoss魔法科技
2020/03/14 星际争霸
如何使用PHP获取网络上文件
2006/10/09 PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
2014/07/30 PHP
Laravel等框架模型关联的可用性浅析
2019/12/15 PHP
javascript静态的url如何传递
2007/05/03 Javascript
JS不间断向上滚动效果代码
2013/12/25 Javascript
js实现双击图片放大单击缩小的方法
2015/02/17 Javascript
表单验证正则表达式实例代码详解
2015/11/09 Javascript
浅析C/C++,Java,PHP,JavaScript,Json数组、对象赋值时最后一个元素后面是否可以带逗号
2016/03/22 Javascript
Vue.js系列之项目搭建(1)
2017/01/03 Javascript
简单实现nodejs上传功能
2017/01/14 NodeJs
利用node.js搭建简单web服务器的方法教程
2017/02/20 Javascript
jquery平滑滚动到顶部插件使用详解
2017/05/08 jQuery
9种使用Chrome Firefox 自带调试工具调试javascript技巧
2017/12/22 Javascript
React服务端渲染原理解析与实践
2021/03/04 Javascript
[03:10]2014DOTA2 TI马来劲旅Titan首战告捷目标只是8强
2014/07/10 DOTA
python安装以及IDE的配置教程
2015/04/29 Python
python单元测试unittest实例详解
2015/05/11 Python
python实现对指定输入的字符串逆序输出的6种方法
2018/04/26 Python
Python中时间datetime的处理与转换用法总结
2019/02/18 Python
python使用socket实现的传输demo示例【基于TCP协议】
2019/09/24 Python
如何运行带参数的python脚本
2019/11/15 Python
Python制作简易版小工具之计算天数的实现思路
2020/02/13 Python
日本最大美瞳直送网:Morecontact(中文)
2019/04/03 全球购物
苏格兰领先的多渠道鞋店:Begg Shoes
2019/10/22 全球购物
护士自我评价
2014/02/01 职场文书
公司门卫管理制度
2014/02/01 职场文书
党员教师工作决心书
2014/03/13 职场文书
关爱老人标语
2014/06/21 职场文书
社团活动总结格式
2014/08/29 职场文书
乌镇导游词
2015/02/02 职场文书
2015年汽车销售员工作总结
2015/07/24 职场文书
写给同事的离职感言
2015/08/04 职场文书
学校2016年九九重阳节活动总结
2016/04/01 职场文书
2016五四青年节活动总结范文
2016/04/06 职场文书
Python Pandas知识点之缺失值处理详解
2021/05/11 Python