iview-admin三级菜单之间切换页面无法缓存问题

       大概是2018年12月初,公司需要做前后端分离,然后就赶鸭子上架,从原始的jsp到iview了。这中间的几万字就暂时省略,进入主题吧。

        iview-admin在2018年12月之前的版本,都会存在【三级菜单之间切换页面无法缓存问题】,因为这个问题是作者在此之后才修复的这个bug,有图为证。

     既然作者已经修复了这个bug,那我为毛还要写这篇博客呢?这个问题问得好,这要归功于我们的搜素,具体名字我就不点明了,简称BD吧,不管你输入什么关键字,它死活都找不到你想要的东西。无奈之下,我只能暂时放下爱国情怀,用Gg来查了。果不其然,一不留神就找到了。(这里只是个人吐槽,不接收反驳和批评,谢谢~)

     吐槽够了,现在数一下作者是怎么修复的。其实很简单,只需要修改一个文件就可以了【src/components/parent-view/parent-view.vue】。

修改前:

<template>
  <router-view/>
</template>
<script>
export default {
  name: 'ParentView'
}
</script>

修改后:

<template>
  <keep-alive :include="cacheList" :exclude="notCacheName">
    <router-view ref="child"/>
  </keep-alive>
</template>
<script>
export default {
  name: 'ParentView',
  computed: {
    tagNavList () {
      return this.$store.state.app.tagNavList
    },
    notCacheName () {
      return [(this.$route.meta && this.$route.meta.notCache) ? this.$route.name : '']
    },
    cacheList () {
      return ['ParentView', ...this.tagNavList.length ? this.tagNavList.filter(item => !(item.meta && item.meta.notCache)).map(item => item.name) : []]
    }
  }
}
</script>

      这样就OK了。

      作者修复这个bug的具体信息详见:https://github.com/iview/iview-admin/tree/master/src/view

      至于具体为什么这样改就行了,我就不多说了(也不是很懂,毕竟不是专业前端,是个纯后台赶鸭子上架来做前端的),不过大概知道是要看看vue的路由和<router-view>的使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值