keep-alive源码:keep-alive.js。
keep-alive常用(考)知识点就三个:max,include,exclude,外加一个LRU算法。
如图所示,还是比较清晰的。
首先他是一个类似vueComponent的实例,提供了个render方法,这个render方法其实就是代替template的渲染模板,至于要渲染缓存的vNode还是当前插槽插进来的vNode,就是要进行判断是否是已缓存的组件了。
实现很清晰了,那我们聊聊LRU算法:
LRU算法就更简单了,面试官问的时候千万不要怯场,他的实质就是一个先进先出的堆结构,然后多了个读取重新排序至尾部的逻辑。
应该算是比较简单的