• keep-alive缓存三级及三级以上路由


    需求:需要缓存这个出入记录,当tab切换时不重新加载,当刷新页面时,或把这个关闭在重新打开时重新加载如图:

    (我这里用的是芋道源码的前端框架)

    keep-alive

    1、include 包含页面组件name的这些组件页面,会被缓存起来
    2、exclude 除了这些name以外的页面组件,会被缓存起来
    3、没有include或者exclude属性,表示所有的路由组件都会被缓存起来

    1. <template>
    2. <section class="app-main">
    3. <transition name="fade-transform" mode="out-in">
    4. <keep-alive :include="cachedViews" exclude="redirect">
    5. <router-view :key="key" />
    6. </keep-alive>
    7. </transition>
    8. </section>
    9. </template>
    10. <script>
    11. export default {
    12. name: 'AppMain',
    13. computed: {
    14. cachedViews() {
    15. return this.$store.state.tagsView.cachedViews
    16. },
    17. key() {
    18. return this.$route.path
    19. }
    20. }
    21. }
    22. </script>

    解决方法

    现在router里面的index.js里面把这三个路由写出来

    在二级路由引入,keep-alive

    然后在仓库里面手动把二级路由加上

    这出现的原因是多级路由导致的,就是router-view嵌套 在层级不同的router-view中切换tag会出现缓存数据失效的问题。目前keep-alive可以有效缓存一级,二级的路由菜单,3级以上菜单并不能做到缓存,这里提供一个解决方案:
    在cachedViews中手动加上一级菜单和三级菜单之间,缺失的二级菜单的名字,这样二级菜单下的组件就会缓存了

  • 相关阅读:
    分享三款AI智能修图工具,超实用!
    滚珠丝杆的工作原理是什么?
    [附源码]java毕业设计水果商城
    django+drf_haystack+elasticsearch+ik+高亮显示
    结构型模式
    中霖教育:注册安全工程师考是科目有哪些?
    Buildroot 添加 Qt 支持
    可变字符串
    pytorch 训练时raise EOFError EOFError
    爬虫 — 正则案例
  • 原文地址:https://blog.csdn.net/m0_55333789/article/details/132804868