vue-18怎么缓存当前的组件?缓存后怎么更新?
-
- 开发中缓存组件使⽤keep-alive组件,keep-alive是vue内置组件,keep-alive包裹动态组件component时, 会缓存不活动的组件实例,⽽不是销毁它们,这样在组件切换过程中将状态保留在内存中,防⽌重复渲染 DOM。
-
- 结合属性include和exclude可以明确指定缓存哪些组件或排除缓存指定组件。vue3中结合vue-router时变化 较⼤,之前是 keep-alive 包裹 router-view ,现在需要反过来⽤ router-view 包裹 keep-alive
-
- 缓存后如果要获取数据,解决⽅案可以有以下两种:
- beforeRouteEnter:在有vue-router的项⽬,每次进⼊路由的时候,都会执⾏ beforeRouteEnter
- actived:在 keep-alive 缓存的组件被激活的时候,都会执⾏ actived 钩⼦
-
- keep-alive是⼀个通⽤组件,它内部定义了⼀个map,缓存创建过的组件实例,它返回的渲染函数内部会查找 内嵌的component组件对应组件的vnode,如果该组件在map中存在就直接返回它。由于component的is属 性是个响应式数据,因此只要它变化,keep-alive的render函数就会重新执⾏。