详解解决Vue相同路由参数不同不会刷新的问题
2019/6/26 23:24:52
本文主要是介绍详解解决Vue相同路由参数不同不会刷新的问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
通常情况下我们喜欢设置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() },
个人比较喜欢第一种方法
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持找一找教程网。
这篇关于详解解决Vue相同路由参数不同不会刷新的问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-04package.json 文件位置在哪?-icode9专业技术文章分享
- 2024-10-01Craco.js学习:从入门到实践指南
- 2024-10-01Create-React-App学习:入门与实践指南
- 2024-10-01CSS-in-JS学习:从入门到实践指南
- 2024-09-30JSX语法学习:从入门到初步掌握
- 2024-09-30Mock.js学习:入门教程与实战演练
- 2024-09-30React Hooks学习:从入门到实践
- 2024-09-30受控组件学习:React中的基础入门教程
- 2024-09-29JS定时器教程:初学者必看指南
- 2024-09-29JS对象教程:初学者的全面指南