1 .编译是离线编译
2 .那么他的核心就是数据更新之后页面更新的速度。才是决定一个框架是否优化的标准
3 .Runtime only:借助webpack的vue-loader工具把.vue文件编译成javascript,因为是在编译阶段做的,所以这只包含运行时的vuejs 代码,代码体积会更加少
4 .Runtime+Compiler:没有对代码进行预编译,而且使用了template属性传入了字符串,则需要在客户端编译模板,可想而知,这个编译过程会对性能有一定的损耗
5 .视图是由数据驱动生成的。我们对视图的修改,不会直接操作dom,而是通过修改数据
6 .dom变成了数据的映射,我们所有的逻辑都是对数据的修改而不会碰触dom,这样的代码非常利于维护
7 .关键是组件被销毁的时候会不会消除掉所有data里面的数据,包括定义的timer定时器
8 .定义了数据结构之后,映射到真实的dom实际上还要经历vnode的create,diff,patch等过程.
update
1 .首次渲染的时候,数据更新的时候
2 .
总结 模板+数据=>最终dom
1 .new Vue
2 .init
3 .$mount
4 .complie
5 .render
6 .vnode
7 .patch
8 .DOM