keep-alive 是 Vue提供的一个抽象组件,用来对组件进行缓存,从而节省性能,作为一个抽象的组件,在页面渲染后不会被渲染成一个DOM元素。
<keep-alive>内容标签...(如:<router-view />)</keep-alive>
当组件在keep-alive内被切换时,组件的activated、deactivated这两个生命周期钩子函数会被执行
设置在特定的情况下强制刷新某些组件:
- 利用include、exclude属性
表示只有name属性为bookLists,bookLists的组件会被缓存(注意是组件的name/名字,而不是路由的名字),其他组件不会被缓存 表示只有name属性为indexLists的组件不会被缓存,其他组件都会被缓存
- 利用meta属性
- { path:’/‘,name:’home’,compoents:Home,meta:{keepAlive:false} },{…}
- 在
标签中做this.$router.meta.keepAlive的判断,是否在keep-alive标签内使用该组件 v-if v-else
- 官方提出的解决方案响应路由参数的变化
this.$nextTick()
provide(){}
inject(){}
