码迷,mamicode.com
首页 > 其他好文 > 详细

vue中keep-alive路由缓存

时间:2019-10-20 12:46:08      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:所有路径   使用   nbsp   default   需要   edit   正则   include   地方   

<keep-alive>
  <component v-bind:is="view"></component>
</keep-alive>

专属生命周期

activited        keep-alive专属,组件被激活时调用
deadctivated    keep-alive专属,组件被销毁时调用

用于子组件缓存,可以让子组件缓存还是不缓存

<!-- 失活的组件将会被缓存!-->
<keep-alive>
  <component v-bind:is="currentTabComponent"></component>
</keep-alive>
网上找的很不错,
1、直接使用
<keep-alive>
  <component>
    <!-- 该组件将被缓存! -->
  </component>
</keep-alive>
  • include - 字符串或正则表达,只有匹配的组件会被缓存
  • exclude - 字符串或正则表达式,任何匹配的组件都不会被缓存
    // 组件 a
    export default {
      name: a,
      data () {
        return {}
      }
    }
    <keep-alive include="a">
      <component>
        <!-- name 为 a 的组件将被缓存! -->
      </component>
    </keep-alive>可以保留它的状态或避免重新渲染

    需要router

    <keep-alive>
        <router-view>
            <!-- 所有路径匹配到的视图组件都会被缓存! -->
        </router-view>
    </keep-alive>
    • 使用 include/exclude
    • 增加 router.meta 属性
      // 组件 a
      export default {
        name: a,
        data () {
          return {}
        }
      }
      <keep-alive include="a">
          <router-view>
              <!-- 只有路径匹配到的视图 a 组件会被缓存! -->
          </router-view>
      </keep-alive>

      增加router属性

      // routes 配置
      export default [
        {
          path: /,
          name: home,
          component: Home,
          meta: {
            keepAlive: true // 需要被缓存
          }
        }, {
          path: /:id,
          name: edit,
          component: Edit,
          meta: {
            keepAlive: false // 不需要被缓存
          }
        }
      ]    
      <keep-alive>
          <router-view v-if="$route.meta.keepAlive">
              <!-- 这里是会被缓存的视图组件,比如 Home! -->
          </router-view>
      </keep-alive>
      
      <router-view v-if="!$route.meta.keepAlive">
          <!-- 这里是不被缓存的视图组件,比如 Edit! -->
      </router-view>

      分析一个写的很详细的地方:很详细https://www.jianshu.com/p/0b0222954483

    • 技术图片 

vue中keep-alive路由缓存

标签:所有路径   使用   nbsp   default   需要   edit   正则   include   地方   

原文地址:https://www.cnblogs.com/qdwds/p/11706978.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!