Vue.js 2.0
2021-01-21 17:30:09 0 举报
Vue.js 2.0流程图
作者其他创作
大纲/内容
initProvide
对diff算法进行优化,深度优先同级比较,利用双端比较的方式结合sameVnode( )方法,判断两个vnode是否相等,将算法复杂度从O(n3)降低到O(n)。
有老VNODE则更新,无则初始化__patch__
patchVnode
vm.update
mounted
mergeOptions
mountComponent
initEvents
beforeMount
created
initInjections
声明$parent $children$root $refs一些tag
将解析html模板,利用正则和栈的数据结构,处理节点生成AST语法树,然后进行静态节点优化,最后将AST转为render和staticRender函数
initLieCycle
新有老没有增加,老有新没有删除,老真实,则追加删除老,新老都V则通过patchVnode( )比较孩子
赋值provide,判断是否为函数,是的话就执行,对象就赋值到实例上
new Watcher()
判断是否是属性更新,是否为文本节点或者元素节点
vm.render( )
重写的$mount
更新父组件设置的eventListeners
beforeCreated
原本的$mount
compileToFunctions()
updateChildren
initState
将Watcher推入_watchers数组,call get( )方法,添加target,调用render和update,如果是用户自定义watcher可能会_traverse( )深度比较,此后清除target,让位出来
patch
new Vue
initRender
收藏
收藏
0 条评论
下一页