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