您好,欢迎来到汇智养生。
搜索
您的当前位置:首页示例vue 的keep-alive缓存功能的实现

示例vue 的keep-alive缓存功能的实现

来源:汇智养生


本篇文章主要介绍了vue 的keep-alive缓存功能的实现,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。

<keep-alive>是Vue的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染DOM。

<keep-alive> 包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们。和 <transition> 相似,<keep-alive> 是一个抽象组件:它自身不会渲染一个 DOM 元素,也不会出现在父组件链中。

prop:

  • include: 字符串或正则表达式。只有匹配的组件会被缓存。
  • exclude: 字符串或正则表达式。任何匹配的组件都不会被缓存。
  • Vue 实现组件信息的缓存

    当我们在开发vue的项目过程中,避免不了在路由切换到其他的component再返回后该组件数据会重新加载,处理这种情况我们就需要用到keep-alive来缓存vue的组件信息,使其不再重新加载。

    一、在app.vue里

    <keep-alive>
     <router-view></router-view>
    </keep-alive>
    

    但是这种情况会对所有的组件进行缓存,不能达到单个组件缓存的效果。

    那么我们给部分组件加上,实现方法如下:

    在app.vue

    <!--这里是需要keepalive的-->
    <keep-alive>
     <router-view v-if="$route.meta.keepAlive"></router-view>
    <keep-alive>
     
    <!-- 这里不会被keepAlive -->
     
    <router-view v-if="!$route.meta.keepAlive"></router-view>

    二、 在路由的index.js页面里

    {
     path: '',
     name: '',
     component: '',
     meta: {keepAlive: true} // 这个是需要keepalive的
    },
    {
     path: '',
     name: '',
     component: ,
     meta: {keepAlive: false} // 这是不会被keepalive的
    }
    

    这就实现了部分组件的缓存功能

    如果缓存的组件想要清空数据或者执行初始化方法,在加载组件的时候调用activated钩子函数,如下:

    activated: function () {
     this.data = ‘'
    }
    

    Copyright © 2019- huiziwo.com 版权所有

    违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

    本站由北京市万商天勤律师事务所王兴未律师提供法律服务