keep-alive

Posted 炎泽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了keep-alive相关的知识,希望对你有一定的参考价值。

vue2.0提供了keep-alive组件,用来缓存组件,避免多次加载,减少性能消耗。

1.将整个网页缓存起来

<router-view 
    class="view"  
    keep-alive  
    transition  
    transition-mode="out-in">  
  </router-view>

最常用的方式,用以提高整体的加载速度。

 

2.缓存部分组件或页面

a.使用include与exclude

<keep-alive include="a,b"> <!--缓存name为a或b的组件-->
  <component :is="view"></component>
</keep-alive>
<!-- regex (use v-bind) -->
<keep-alive :include="/a|b/"> <!--缓存name正则匹配/a|b/的组件-->
 <component :is="view"></component> </keep-alive>

官网推荐的方法

 

b.使用router.mate

// 这是目前用的比较多的方式
<keep-alive>
    <router-view v-if="$route.meta.keepAlive"></router-view>
</keep-alive>
<router-view v-if="!$route.meta.keepAlive"></router-view>

router设置:

... 
  routes: [
    { path: ‘/‘, redirect: ‘/index‘,  component: Index, mate: { keepAlive: true }},
    {
      path: ‘/common‘,
      component: TestParent,
      children: [
        { path: ‘/test2‘, component: Test2, mate: { keepAlive: true } } 
      ]
    }
    ....
    // 表示index和test2都使用keep-alive

根据router设置中的mate值来判断是否加载此组件

以上是关于keep-alive的主要内容,如果未能解决你的问题,请参考以下文章

vue中的缓存——keep-alive,activated,deactivated

15《Vue 入门教程》Vue 动态组件 &amp;amp; keep-alive

vue 路由 按需 keep-alive

keep-alive组件及相关知识

Vue.js - 删除从 keep-alive 加载的子组件

Vue 路由按需keep-alive(附源码)