vue-router 之 keep-alive

Posted chenglideyueguang

tags:

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

keep-alive 简介

keep-alive是 Vue 内置的一个组件,可以使被包含的组件保留状态,或避免重新渲染。

router-view 也是一个组件,如果直接被包在 keep-alive 里面,所有路径匹配到的视图组件都会被缓存,例如:

 

技术分享图片
// routes 配置
export default [
{
  path: ‘/‘,
  name: ‘home‘,
  component: Home,
  meta: {
    keepAlive: true // 需要被缓存
  }
}, {
  path: ‘/:id‘,
  name: ‘edit‘,
  component: Edit,
  meta: {
    keepAlive: false // 不需要被缓存
  }
}]
技术分享图片

 

 

技术分享图片
<transition name="router-fade" mode="out-in">
  <keep-alive>
    <router-view v-if="$route.meta.keepAlive">
    <!-- 这里是会被缓存的视图组件,比如 Home! -->
    </router-view>
  </keep-alive>
</transition>
<transition name="router-fade" mode="out-in">
  <router-view v-if="!$route.meta.keepAlive">
    <!-- 这里是不被缓存的视图组件,比如 Edit! -->
  </router-view>
</transition>

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

vue-router 之 keep-alive路由缓存处理include+exclude

vue-router 之 keep-alive

vue-router使用keep-alive动态缓存页面。

keep-alive遇见vue-router

vue.js+vue-router+webpack keep-alive用法

Vue-Router第三弹-全局导航守卫keep-alive