小编给大家分享一下如何解决Vue相同路由参数不同不会刷新的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
成都创新互联专注于企业网络营销推广、网站重做改版、徽州网站定制设计、自适应品牌网站建设、成都h5网站建设、成都做商城网站、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为徽州等各大城市提供网站开发制作服务。
通常情况下我们喜欢设置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相同路由参数不同不会刷新的问题”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!