keep-alive组件缓存

keep-alive组件缓存

a跳b,a已经销毁,b重新渲染;b跳a,b销毁a重新渲染

源组件销毁,目标组件渲染

keep-alive组件缓存_第1张图片

组件缓存:组件实例等相关( 包括vnode)存储起来

keep-alive组件缓存_第2张图片

重新渲染指的是:把视图重新编译成新的vnode->dom diff->渲染成真实dom

真实dom被我移除了只是从页面上移除,只是把vnode重新渲染成真实dom或者说把真实dom插入到页面中。所有周期都不会触发(react中需要自己写)

提一下vuex的区别:

第一次进分类页,数据都存到vuex中,只需要从vuex中拿到信息;跟keep-alive不一样数据存到vuex中但组件依然销毁,重新编译视图重新创建vnode重新渲染,只是不再发请求,但是解决不了视图重新编译。

联带数据 组件实例 vnode所有一切都缓存起来了;只是让dom重新插入页面

配置项:include表示做缓存的页面

include要是动态管理的

beforeEach/afterEach:全局的路由钩子

动态管理缓存组件:

  1. keepAliveList数据中添加/移除
  2. keep-alive这里更新一下

keep-alive组件缓存_第3张图片

  1. 所以next需要等待渲染完再next(移除时不需要)

keep-alive组件缓存_第4张图片keep-alive组件缓存_第5张图片

缓存:第二次渲染速度是最快的,某些数据不会及时更新

你可能感兴趣的:(前端,javascript,vue.js)