zoukankan      html  css  js  c++  java
  • vue2.0 keep-alive最佳实践

      转自:https://segmentfault.com/a/1190000008123035

    1.基本用法

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

    <keep-alive>
    <component>
    <!-- 组件将被缓存 -->
    </component>
    </keep-alive>

    有时候 可能需要缓存整个站点的所有页面,而页面一般一进去都要触发请求的
    在使用keep-alive的情况下

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

    将首次触发请求写在created钩子函数中,就能实现缓存,
    比如列表页,去了详情页 回来,还是在原来的页面

    2.缓存部分页面或者组件

    (1)使用router. meta属性

    // 这是目前用的比较多的方式

    <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, meta: { keepAlive: true }},
    {
    path: '/common',
    component: TestParent,
    children: [
    { path: '/test2', component: Test2, meta: { keepAlive: true } } 
    ]
    }
    ....

    // 表示index和test2都使用keep-alive
    (2).使用新增属性inlcude/exclude

    2.1.0后提供了include/exclude两个属性 可以针对性缓存相应的组件

    <!-- comma-delimited string -->
    <keep-alive include="a,b">
    <component :is="view"></component>
    </keep-alive>
    <!-- regex (use v-bind) -->
    <keep-alive :include="/a|b/">
    <component :is="view"></component>
    </keep-alive>

    //其中a,b是组件的name
    注意:这种方法都是预先知道组件的名称的

    (3)动态判断

    <keep-alive :include="includedComponents">
    <router-view></router-view>
    </keep-alive>
    includedComponents动态设置即可
  • 相关阅读:
    4组Alpha冲刺2/6
    4组Alpha冲刺1/6
    4组Alpha冲刺3/6
    4组Alpha冲刺3/6
    4组Alpha冲刺4/6
    原创视频作品汇总(更新至2012.8.04)
    PPT全转通2.0发布
    PPT全转通1.3
    [原创]WIN8系统的远程桌面漏洞 利用QQ拼音纯净版实现提权
    原创钢琴曲 《夏季来临之前的歌》
  • 原文地址:https://www.cnblogs.com/EnSnail/p/7124512.html
Copyright © 2011-2022 走看看