Open jiefancis opened 3 years ago
new Vue ---> init ---> $mount ---> compile ---> render ---> vnode ---> patch ----> DOM
refernce
new Vue
src/core/instance/index 入口
init
src/core/instance/init ,初始化并调用vm.$mount执行挂载
$mount
src/platforms/web/runtime/index 定义 Vue.prototype.$mount
src/platforms/web/entry-runtime-with-compiler重写$mount,实现compile解析html并生成render函数
compile
src\platforms\web\entry-runtime-with-compiler执行compileToFunctions
src/platforms/web/compiler/index创建解析createCompiler
src/compiler/index定义createCompiler函数调用parse解析
src/compiler/parser定义parse,解析template并返回root
render :ast转化成code。
src/compiler/codegen。const code = generate(ast, options),代码生成
src/compler/to-function.js 将render代码串转换成函数。new Function(arg1,arg2,functionBody)
将template模板转化为render函数
vue如何实现数据驱动?
vue整个流程
new Vue ---> init ---> $mount ---> compile ---> render ---> vnode ---> patch ----> DOM
refernce
new Vue
src/core/instance/index 入口
init
src/core/instance/init ,初始化并调用vm.$mount执行挂载
$mount
src/platforms/web/runtime/index 定义 Vue.prototype.$mount
src/platforms/web/entry-runtime-with-compiler重写$mount,实现compile解析html并生成render函数
compile
src\platforms\web\entry-runtime-with-compiler执行compileToFunctions
src/platforms/web/compiler/index创建解析createCompiler
src/compiler/index定义createCompiler函数调用parse解析
src/compiler/parser定义parse,解析template并返回root
render :ast转化成code。
src/compiler/codegen。const code = generate(ast, options),代码生成
src/compler/to-function.js 将render代码串转换成函数。new Function(arg1,arg2,functionBody)
将template模板转化为render函数