初次渲染过程:
- 解析模板为 render 函数(或在开发环境已完成, vue-loader)
- 触发响应式,监听 data 属性 getter,setter
- 执行 render 函数,生成 vnode, patch(elem, vnode)
更新过程:
- 修改 data,触发 setter (此前在 getter 中 已被 监听)
- 重新执行 render 函数,生成 newVnode
- patch(vnode, newVnode)
异步渲染:
- 回顾 $nextTick,(以下这是对 $nextTick的回顾: $nextTick: vue 是异步渲染;data改变之后,DOM 不会立刻渲染;$nextTick 会在 DOM 渲染之后被触发,以获取最新 DOM 节点。vue 为何是异步渲染,$nextTick何用?异步渲染(以及合并data修改),以提高渲染性能,$nextTick 在DOM 更新完之后,触发回调。另外,在 vue 中可以通过 ref 获取元素:给元素添加ref属性并设置名称,然后通过 this.$refs.ref 属性名称获取该DOM 元素)总结:1、异步渲染,$nextTick待 DOM 渲染完再回调;2、页面渲染时会将 data 的修改做整合,多次data修改只做一次渲染。
- 汇总 data 的修改,一次性更新视图
- 减少 DOM 操作次数,提高性能
上一篇: RequestMapping支持Ant 路径风格_java培训
下一篇: ElasticSearch_大数据培训