• vue中keep-alive的使用


    在vue2.1.0版本后,keep-alive新加入了两个属性:include(包含的组件缓存生效)与exclude(排除的组件不缓存,优先级大于include)。

    include和exclude属性允许组件有条件的缓存。二者都可以用逗号分隔字符串、正则表达式或一个数组来表示。(当使用正则或者是数组时,一定要使用v-bind)

    <!-- 逗号分隔字符串,只有组件a与b被缓存。这样使用场景变得更有意义了 -->
    <keep-alive include="a,b">
      <component :is="view"></component>
    </keep-alive>
    
    <!-- 正则表达式 (需要使用 v-bind,符合匹配规则的都会被缓存) -->
    <keep-alive :include="/a|b/">
      <component :is="view"></component>
    </keep-alive>
    
    <!-- Array (需要使用 v-bind,被包含的都会被缓存) -->
    <keep-alive :include="['a', 'b']">
      <component :is="view"></component>
    </keep-alive>

    有了include之后,再与router-view一起使用时便方便了许多了:

    <!-- 一个include解决了,不需要多写一个标签,也不需要在路由元中添加keepAlive了 -->
    <keep-alive include='a'>
        <router-view></router-view>
    </keeo-alive>

    需要注意的地方:

    1、<keep-alive>先匹配被包含组件的name字段,如果name不可用,则匹配当前组件components配置中的注册名称。

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

    3、当匹配条件同时在include与exclude存在时,以exclude优先级最高

    4、包含在<keep-alive>中,但符合exclude,不会调用activated和deactivated。

  • 相关阅读:
    [转]你每天90%的注意力被浪费了
    通过浏览器navigator获取当前经纬度位置
    Sublime Text 3 安装、插件与个人配置
    ios判断手机号是否可用
    AFNetworking提示3840 Unescaped control character around character XXX
    理解OC“属性”这一概念
    熟悉Objective—C
    如何在自己的应用中打开第三方应用程序
    ios多线程开发总结
    UIView的Touch事件UIControlEvents详解
  • 原文地址:https://www.cnblogs.com/chao202426/p/13219005.html
Copyright © 2020-2023  润新知