mixin

12 阅读1分钟

一:mixin是什么?

mixin(混入),提供一种非常灵活的方式,来分发vue组件中的可复用功能。 本质是一个js对象,包含了组件中任意功能选项,如:data,components,methods,created,computed等 vue中可以局部混入跟全局混入

全局混入:会影响到每一个组件实例,所以常用于插件的编写

从源码来看: 优先递归处理mixins,先遍历合并parent中的key,调用mergeField方法进行合并,然后保存在变量options,再遍历child,合并补上parent中没有的key,调用mergeField方法进行合并,保存在变量options。再遍历child,合并补上parent中没有的key,调用- mergeField方法进行合并,保存在变量options通过 mergeField 函数进行了合并。

vue的几种类型的合并策略: 替换型,合并型,队列型,叠加型。

小结:

替换型策略有props,methods,inject,computed,就是将新的同名参数替代旧的参数。 合并型策略是data,通过set方法进行合并和重新赋值 队列型策略有生命周期函数和watch,原理是将函数存入一个数组,然后正序遍历依次执行 叠加型有component,directives,filters,通过原型链进行层层的叠加。