对MVVM的理解
MVVM 由 MVC 模型演变而来,M(Model)代表数据模型,V(View)代表用户操作的界面,VM(ViewModel)代表业务逻辑层,
充当数据模型与视图界面的桥梁,可以把数据绑定到页面,页面操作触发数据更新,数据修改自动触发视图更新。
Mixins的原理
Vue 的 mixins混入 可以抽离封装Vue 组件选项达到复用的效果。
data、provide:后者的值将对前者的值进行扩展,相同属性名(非对象)则以后者的属性值为准,如果两者的值是对象,但值不相等,则继续进行合并,
生命周期钩子函数:将后者的生命周期钩子函数拼接到前者的生命周期钩子函数,调用时依次执行;
components、filters、directives:对前者的属性进行拷贝扩展,属性相同则后者覆盖前者;
**watch:**与生命周期钩子函数类似,将后者的 watch拼接到前者的 watch后面;
props、methods、inject、computed:定义一个对象 ret,遍历前者的属性或方法,对 ret进行扩展,再遍历后者的属性或方法,后者将覆盖前者的属性或方法;
默认策略:策略中没有定义的策略,后者有则返回后者,否则返回前者;
数组劫持原理
- 使用
Object.create(Array.prototype)
备份原型上的方法 - 利用 AOP 思想,对 7 个变异方法进行重写,重写函数:先调用原来对应方法,再对新增的每一项进行数据劫持