详解解决Vue相同路由参数不同不会刷新的问题

 更新时间:2018年10月12日 15:15:30   作者:bug开发  
这篇文章主要介绍了详解解决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手写防抖和节流函数代码详解

    Vue手写防抖和节流函数代码详解

    在Vue中函数的防抖和节流不是什么新鲜话题,这篇文章主要给大家介绍了关于Vue3中防抖/节流的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • Vue router-view和router-link的实现原理

    Vue router-view和router-link的实现原理

    这篇文章主要介绍了Vue router-view和router-link的实现原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 详解Vue iview IE浏览器不兼容报错(Iview Bable polyfill)

    详解Vue iview IE浏览器不兼容报错(Iview Bable polyfill)

    这篇文章主要介绍了Vue iview IE浏览器不兼容报错的决绝方法,由于Iview编译使用到了es6的一些新特性,但是在IE中不支持ES6的新特性,本文就介绍一下如何解决这些问题
    2019-01-01
  • Vue.js路由vue-router使用方法详解

    Vue.js路由vue-router使用方法详解

    这篇文章主要为大家详细介绍了Vue.js路由vue-router使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • Vue首页加载白屏原因以及10种解决方法汇总

    Vue首页加载白屏原因以及10种解决方法汇总

    这篇文章主要介绍了Vue首页加载白屏原因以及10种解决方法汇总,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • 使用vue3+TS实现简易组件库的全过程

    使用vue3+TS实现简易组件库的全过程

    当市面上主流的组件库不能满足我们业务需求的时候,那么我们就有必要开发一套属于自己团队的组件库,下面这篇文章主要给大家介绍了如何使用vue3+TS实现简易组件库的相关资料,需要的朋友可以参考下
    2022-03-03
  • vue实现点击关注后及时更新列表功能

    vue实现点击关注后及时更新列表功能

    这篇文章主要介绍了vue实现点击关注后及时更新列表功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-06-06
  • vue loadmore组件上拉加载更多功能示例代码

    vue loadmore组件上拉加载更多功能示例代码

    这篇文章主要介绍了vue loadmore组件上拉加载更多功能示例代码,需要的朋友可以参考下
    2017-07-07
  • 详解vue3+element-plus实现动态菜单和动态路由动态按钮(前后端分离)

    详解vue3+element-plus实现动态菜单和动态路由动态按钮(前后端分离)

    本文需要使用axios,路由,pinia,安装element-plus,并且本文vue3是基于js而非ts的,这些环境如何搭建不做描述,需要读者自己完成,感兴趣的朋友跟随小编一起看看吧
    2023-11-11
  • Vue组件模板的几种书写形式(3种)

    Vue组件模板的几种书写形式(3种)

    这篇文章主要介绍了Vue组件模板的几种书写形式(3种),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02

最新评论