混入

1、混入

    作用:用来分发Vue组件中的可复用功能。一个混入对象里面可以有任意组件选项,一个组件可以通过mixins调用混入对象,从而使用对象里面的组件选项。

例如:

混入_第1张图片

使用混入后,组件MyComponent相当于定义了一个created钩子函数和一个startMixin()方法。

2、组件本身选项与被调混入对象选项合并

策略:

    1>数据对象进行递归合并,发生冲突时以组件的数据优先

    2>同名的钩子函数都会被合并到一个数组中,并都会被调用,但是混入对象的钩子优先于组件本身钩子被调用

    3>值为对象的选项,如methods,components和directives,将被合并为同一对象,当对象名存在同名冲突时,以组件本身的选项优先。

例如:

混入_第2张图片

渲染结果为:

混入_第3张图片

由此可见,数据属性同名时,组件的优先级大于混入对象;钩子函数同名时,混入对象的优先级大于组件。

3、全局混入

   全局混入需先进行全局注册,可通过Vue.mixin()方法实现。但是全局注册后的混入对象,会影响到每个Vue实例。例如:

混入_第4张图片

渲染结果:

由此可见,一旦注册了全局混入对象,对象中的钩子函数会自动注入到每一个实例中,所以使用时需谨慎。大多数用于自定义选项中

你可能感兴趣的:(混入)