1. vue中的虚拟dom
虚拟dom的思想:对复杂的文档DOM结构,进行最小化地DOM操作。虚拟DOM相当于在js和真实DOM中间添加了缓存,利用diff算法避免了没有必要的dom操作,从而提高了性能。
具体实现
- 用js对象结构表示DOM树的结构,然后根据这个结构构件一个真正的DOM树插入到文档中
- 当状态改变时候重新构建新的对象树(虚拟dom)然后用新的树和旧的进行比较。记录差异
- 将记录的差异部分在进行构件,视图更新
2. 双向绑定原理
vue使用ES5提供的Object.defineProperty()方法
angular采用脏值检查
3. vue生命周期的理解
- beforeCreate--创建之前,组件实例被创建,组件属性计算之前,数据对象data都是undefined,还没有初始化
- created--实例创建后,组件实例创建完成,属性已经绑定,数据对象data已经存在,但是dom还没有生成,$el还没有挂载,数据的获取一般在created阶段
- beforeMount--挂载前,Vue实例的$el和data都已经实例化,挂载之前为虚拟dom节点,data.essage还没有替换
- mounted--挂载到指定dom元素,Vue实例挂载完成,data.message成功渲染,可以操作dom节点
- beforeUpdate--更新数据,当data中的数据方式变化时候会触发beforeUpdate方法(绑定了setter方法,和getter方法)
- update--更新完毕
- beforeDestory--销毁,组件销毁之前调用
- destoryed--销毁后,组件销毁之后