vue 渲染过程

- 调用
compile函数,生成 render 函数字符串 ,编译过程如下:- parse 使用大量的正则表达式对template字符串进行解析,将标签、指令、属性等转化为抽象语法树AST。
模板 -> AST (最消耗性能) - optimize 遍历AST,找到其中的一些静态节点并进行标记,方便在页面重渲染的时候进行diff比较时,直接跳过这一些静态节点,
优化runtime的性能 - generate 将最终的AST转化为render函数字符串
- parse 使用大量的正则表达式对template字符串进行解析,将标签、指令、属性等转化为抽象语法树AST。
- 调用
new Watcher函数,监听数据的变化,当数据发生变化时,Render 函数执行生成 vnode 对象 - 调用
patch方法,对比新旧 vnode 对象,通过 DOM diff 算法,添加、修改、删除真正的 DOM 元素
本文详细介绍了Vue.js的渲染过程:从template字符串开始,经过parse解析为AST,optimize优化静态节点,generate生成render函数字符串;然后通过newWatcher监听数据变化,数据变化时执行Render函数生成vnode,最后通过patch方法更新DOM。
623

被折叠的 条评论
为什么被折叠?



