vue中的keep-alive问题(2)

1:keep-alive生效的前提,组件都要声明一个name属性,并确保唯一性
2:A/C跳转B页面,返回A/C,缓存C二级路由,则需要同时缓存一级路由A,否则缓存不生效,设置缓存需要写在beforeRouteEnter里面

  beforeRouteEnter(to, from, next) {
    next(vm => {
      //详情->私募待办(销毁)->我的理财之后,再走我的理财->私募待办(缓存)->详情的时候,写在routeLeave的时候缓存失效
      vm.$store.commit('setInclude', ['user', 'privateContractPending'])
    })
  },
  beforeRouteLeave(to, from, next) {
    if (to.name !== 'detail') {
      this.$store.commit('setInclude', [])
      this.$destroy()
    }
    next()
  },

写在routeLeave中出现的问题:
A/B->A/C->D,然后D->A/C缓存这时是生效的,但是再接着继续返回到A/B,再走A/C->D,再走D->A/C发现没有缓存

beforeRouteLeave(to, from, next) {
  if(to.name === 'detail'){
    this.$store.commit('setInclude', ['user', 'privateContractPending'])
  }else{
     this.$store.commit('setInclude', [])
     this.$destroy()
  }
}

3.keep-alive关于缓存scrollTop,除非滚动的是window的情况下是可以缓存scrollTop的,其他情况都无法缓存。需要自己记录。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容