仿KeepAlive实现缓存组件状态
前言
如果希望那些标签的组件实例能够被在它们第一次被创建的时候缓存下来。为了解决这个问题,我们可以用一个 keep-alive
元素将其动态组件包裹起来。
接下来我们就来实现组件的缓存
一、前期准备
实现我们需要定义几个常用的函数然后暴露出去
function isDef(x) {
return x !== undefined && x !== null
}
function getFirstComponentChild(children) {
if (Array.isArray(children)) {
for (let i = 0; i < children.length; i++) {
const c = children[i]
if (isDef(c) && !isDef(c.componentOptions.children)) {
return