vue 的keep-alive的使用

vue官方推荐了几种使用方法,可也看看link
我具体说说自己在项目中的使用,我采用的是$route.meta.keepAlive的方式来实现路由切换时,页面的缓存

  • App.vue里面使用keep-alive,如下
<template>
  <div id="app">
        <keep-alive>
            <--! 需要缓存的-->
            <router-view v-if="$route.meta.keepAlive"></router-view>
        </keep-alive>
        <transition enter-active-class="slide-forward" leave-active-class="slide-back">
            <--! 不需要缓存的-->
            <router-view v-if="!$route.meta.keepAlive"></router-view>
        </transition>
    
  </div>
</template>

注意:我在不需要缓存的router-view上面加了transtion动画效果,但是在需要缓存的路由上面并没有加,因为router-view和transtion都是虚拟的DOM都不会被渲染在页面上,如果你给需要缓存的加上动画效果的标签,你会发现页面一样会刷新,并没有达到缓存的效果
其实官方说明里面也有提到这一点,是缓存不活动的组件,当然你如果非得要给组件加上动画效果,你可以在单独的组件上面去加,这样子也是不影响缓存的


官方说明
  • router/index.js里面做配置
{
      path:'/partManagement',
      name:'PartManagement',
      component : resolve => require(['@/components/pages/PartManagement'] , resolve),
      meta:{
        requireAuth : true,
        keepAlive: true,        
        pageTitle:'零件管理 '        
      }
    },

将属性这样设置即可keepAlive: true

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,213评论 3 119
  • 刚刚开始借书的时候,我看到了书架上有传记这本书,我瞬间就被吸引了,高中的时候我就在语文试卷上喜欢选传记这个文...
    律谢小谢阅读 1,160评论 1 1
  • 1.history命令 history命令可以查看执行过的历史命令。其命令格式为: n:数字,列出最近执行的n个指...
    悠扬前奏阅读 627评论 0 0
  • 一、九月总结 真是闲处光阴易过,转眼已是秋风浓烈。 7月6日开始使用APP“爱今天”记录时间,九月完完整整记录下了...
    魔镜老师阅读 908评论 0 1
  • 很多想从事设计的人一开始都会误认为学设计就是学一些和设计相关的设计软件,比如PS,AI,CDR,ID等等,其实这个...
    潘建羽阅读 422评论 0 0

友情链接更多精彩内容