Skip to content

Mixin

混入(Mixin),用来分发Vue组件中可复用的功能;将组件的公共逻辑或者配置提取出来,哪个组件需要用到时,直接将提取的这部分混入到组件内部即可。这样既可以减少代码冗余度,也可以让后期维护起来更加容易。

  • 使用方式: 局部混入(mixins: [xxxx])、全局混入(VUe.mixin(options));Vue3中没有Mixin,通过hook抽离公共代码逻辑,按需引入。
  • 注意事项: 当组件存在于Mixin对象相同选项时,进行递归合并(Mixin里可能还有Mixin)的时候,组件选项会覆盖Mixin的选项,不同的选项有不同的合并规则。
  • 合并策略:
    • 替换型:propsmethodscomputedinject,将新的同名参数替代旧的参数。
    • 合并型:data,通过set方法进行合并和重新赋值。
    • 队列型:生命周期钩子、watch,将回调函数存入数组,然后正序遍历执行。
    • 叠加型:componentdirectivesfilters,通过原型链进行层层叠加。
  • 存在问题:
    • 容易命名冲突。
    • 不同选项的合并策略不同,容易出错。
    • 数据来源不明,不好追溯,排查问题困难。

Released under the MIT License.