Vue(runtime with compiler)
2018-09-19 18:31:22 0 举报
Vue(runtime with compiler)
作者其他创作
大纲/内容
原生标签?
updateComponent()
watcher.addDep(dep)
markStaticRoot()
init data
parseEndTag()把之前解析开始标签压入栈的元素弹出一个
解析注释, Doctype...
公共mount()方法
advance()
触发对象getter
optimize(ast)
generate(ast)
queueWatcher(watcher)
callHook beforeCreate
callHook created
解析模板字符串生成 AST
init injections
解析开始标签
callHook beforeUpdate
优化AST,目的是遍历所有节点,判断这些节点是否静态,如果是,数据更新则不用考虑这些节点
watcher = new Watcher()
定义vm._c和vm.$createElement = _createElement()
parseHTML()
handleStartTag()压入stack,创建AST元素,处理AST(for/if/...),管理AST树
vm.$mount()
new Vue()
dep.addSub(watcher)
observe(data)
init provide
resetSchedulerState()
有render属性
合并options
new VNode()
createComponent()
真
parseStartTag()匹配出标签名、属性列表
生成代码
queue.push(watcher)(每个watcher只会被添加一次)
Object.defineProperty()
chars()以可执行表达式的方式添加到子节点中
dep = new Dep()
pushTarget(watcher)
假
subs.push(watcher)
vm.__patch__()
init events
set: dep.notify()
init watch
callHook mounted
watcher.run()
vm._render()生成VNode
init methods
vm._watcher = []
nextTick(flushSchedulerQueue)
定义updateComponent = vm._update(vm._render())
new Observer(data)
mount()
解析文本
parse(template)
watcher.getAndInvoke()
init computed
遍历subs[...watchers]执行update()
创建subs[]收集watcher
init lifecycle
init render
watcher.get()
把template转化成render,需要compiler才会有此过程
markStatic()
callHook beforeMount
init props
compileToFunctions()
init state
get: dep.depend()
解析结束标签
callHook updated
收藏
0 条评论
下一页