zoukankan      html  css  js  c++  java
  • vue中的keep-alive

    官方文档:

    keep-alive

    如果把切换出去的组件保留在内存中,可以保留它的状态或避免重新渲染。为此可以添加一个 keep-alive 指令参数:

    <keep-alive>
      <component :is="currentView">
        <!-- 非活动组件将被缓存! -->
      </component>
    </keep-alive>
    • Props:

      • include - 字符串或正则表达式。只有匹配的组件会被缓存。
      • exclude - 字符串或正则表达式。任何匹配的组件都不会被缓存。
    • 用法:

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

      当组件在 <keep-alive> 内被切换,它的 activated 和 deactivated 这两个生命周期钩子函数将会被对应执行。

      在 2.2.0 及其更高版本中,activated 和 deactivated 将会在 <keep-alive> 树内的所有嵌套组件中触发。

    2.1.0 新增:include 和 exclude 属性允许组件有条件地缓存。二者都可以用逗号分隔字符串、正则表达式或一个数组来表示:

    <!-- 逗号分隔字符串 -->
    <keep-alive include="a,b">
      <component :is="view"></component>
    </keep-alive>
    
    <!-- 正则表达式 (使用 `v-bind`) -->
    <keep-alive :include="/a|b/">
      <component :is="view"></component>
    </keep-alive>
    
    <!-- 数组 (使用 `v-bind`) -->
    <keep-alive :include="['a', 'b']">
      <component :is="view"></component>
    </keep-alive>

    匹配首先检查组件自身的 name 选项,如果 name 选项不可用,则匹配它的局部注册名称 (父组件 components 选项的键值)。匿名组件不能被匹配。

    <keep-alive> 不会在函数式组件中正常工作,因为它们没有缓存实例。

    动态判断
    <keep-alive :include="includedComponents">
      <router-view></router-view>
    </keep-alive>

    includedComponents动态设置即可

    在2.1.0之前,我们可以这样做:

    缓存部分页面或者组件

    (1)使用router.mate属性
    // 这是目前用的比较多的方式
    <keep-alive>
        <router-view v-if="!$route.meta.notKeepAlive"></router-view>
    </keep-alive>
    <router-view v-if="$route.meta.notKeepAlive"></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

    参考链接:http://www.jianshu.com/p/e4bd12e789dd

  • 相关阅读:
    装饰者设计模式
    Base64技术:把对象转变成字符串
    Android获取网络数据进行GZIP解压
    自定义Button成进度条
    Android:TextView最小行数设置
    介绍两个Android不常用的Drawable:GradientDrawable和 StateListDrawable
    Json介绍
    Android自定义XML属性
    Android手机图片适配问题
    AsyncTask
  • 原文地址:https://www.cnblogs.com/fanlinqiang/p/8028669.html
Copyright © 2011-2022 走看看