Skip to content

对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进行扩展,再遍历后者的属性或方法,后者将覆盖前者的属性或方法;

默认策略:策略中没有定义的策略,后者有则返回后者,否则返回前者;

数组劫持原理

  1. 使用 Object.create(Array.prototype) 备份原型上的方法
  2. 利用 AOP 思想,对 7 个变异方法进行重写,重写函数:先调用原来对应方法,再对新增的每一项进行数据劫持