include - 字符串或正则表达式。只有名称匹配的组件会被缓存。
exclude - 字符串或正则表达式。任何名称匹配的组件都不会被缓存。
max - 数字。最多可以缓存多少组件实例。
//router.js文件路由设置
{
path: '/keep_alive_test',
component: () => import('@/views/keepAliveTest.vue'),
meta: {
title: 'keepAlive测试',
keepAlive: true//使用(通过路由meta的keepAlive属性决定那个页面使用缓存)
}
},
//App.vue文件
使用include,exclude属性(个人觉得应该是在通用组件上设置的时候用出比较大)
//App.vue文件
data () {
return {
pages: ['componentA', 'componentC']
}
}
//这里的component组件内容就会被缓存,name为componentA\componentC的组件将会被缓存。name为componentB的组件将不会被缓存。
//!!!!include和exclude的组件名字必须是组件定义的name
三、注意事项
keep-alive组件使用针对的是页面组件!!!!
使用keep-alive 的组件不会再次触发created钩子函数
使用keep-alive,调用 $destory() 需要谨慎,否则页面不再被缓存
include 和exclude的组件名字必须是组件定义的name,而不是路由里面定义的名字