重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
小编给大家分享一下如何解决Vue相同路由参数不同不会刷新的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
创新互联长期为1000多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为云冈企业提供专业的成都做网站、网站建设、外贸营销网站建设,云冈网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。通常情况下我们喜欢设置keepAlive 包裹 router-view
同时在created 中触发请求,在路由参数不同的情况下并不会执行对应的操作。
解决方法:
1、给 router-view 设置 key 属性为路由的完整路径
这种方法我觉得应该是一劳永逸的方法,可能对性能造成一定损耗。不适用于一个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相同路由参数不同不会刷新的问题”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!