1 Vue.js是一个提供MVVM数据双向绑定的库,只专一于UI层面,这是它的核心。它自己没有解决SPA时的路由切换(vue-router), 2 也没有解决大规模状态管理(vuex),更没有提供工程的构建方式(webpack)。 3 它给你的是充分的灵活性,在实现过程当中,须要在此基础上不断添加配套工具(容许尝试各类想用的方案)。 4 vuejs核心 + 生态圈,是渐进性加强的,是一个在总体选型更为灵活的栈。
1 Vue.js的核心是一个容许你采用简洁的模板语法来声明式的将数据渲染进DOM的系统。 2 DOM应尽量是一个函数式到状态的映射,状态是惟一真相,而DOM是状态的一个映射。
1 Vuejs1.0中,把模板parse成DOM树,而后去遍历这个树,提取其中的各类绑定,这是观察数据与各自watchers取得联系的过程。 2 Vuejs2.0中,引入虚拟DOM,编译器parse模板时转变为render函数,函数被调用时就会返回一个虚拟DOM树。 3 这个树很是轻量,只负责描述当前界面所应处的状态。有了这个虚拟树后,再交给一个patch函数,负责把虚拟DOM树真正施加到真实的DOM上。 4 当从新须要渲染时,render会生成一个新的树,将新树与旧树进行对比,得出需作出的改动,再经过patch函数施加修改。