- include 字符串或正则表达式,只有名称匹配的组件会被缓存
- exclude 字符串或正则表达式,任何名称匹配的组件都不会被缓存
- max 数字,最多可以缓存多少组件实例
-
<keep-alive include="test-keep-alive">
//将缓存name为test-keep-alive的组件
<component></component>
</keep-alive>
-
<keep-alive include="a,b">
//将缓存name为a或者b的组件,结合动态组件使用
<component :is="view"></component>
</keep-alive>
-
<keep-alive :include="/a|b/">
//使用正则表达式,需使用v-bind
<component :is="view"></component>
</keep-alive>
-
<keep-alive :include="includedComponents">
<router-view></router-view>
</keep-alive>
-
<keep-alive exclude="test-keep-alive">
<!-- 将不缓存name为test-keep-alive的组件 -->
<component></component>
</keep-alive>
<keep-alive>
<router-view v-if="$route.meta.keepAlive"></router-view>
</keep-alive>
<router-view v-if="!$route.meta.keepAlive"></router-view>
//router.js
export default new Router({
routes: [
{
path: '/',
name: 'Hello',
component: Hello,
meta: {
keepAlive: false // 不需要缓存
}
},
{
path: '/page1',
name: 'Page1',
component: Page1,
meta: {
keepAlive: true // 需要被缓存
}
}
]
})
- activated: 页面第一次进入的时候,钩子触发的顺序是created->mounted->activated
- deactivated: 页面退出的时候会触发deactivated,当再次前进或者后退的时候只触发activated