【Vue】mixin学习

官方文档

混入 (mixins) 是一种分发 Vue 组件中可复用功能的非常灵活的方式。混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被混入该组件本身的选项。

混入可以粗暴的理解成,将组件自身属性和方法,与mixins属性引入的属性合并,含有同名选项时,取自身属性和方法,但不全是如此,我们一一进行分析

  1. 基本用法
// mixin
var mixin = {
  data: function () {
    return {
      message: 'hello',
      foo: 'abc'
    }
  }
}
// vue组件
new Vue({
  // mixin混入,参数是数组,可以合并多个minin对象
  mixins: [mixin],
  data: function () {
    return {
      message: 'goodbye',
      bar: 'def'
    }
  },
  created: function () {
    console.log(this.$data)   // => { message: "goodbye", foo: "abc", bar: "def" }
  }
})
  1. 混入规则分析
    • 钩子函数合并
      合并成一个数组,混入对象的钩子将在组件自身钩子之前调用
    • 值为对象的选项,例如 data, methods, components 和 directives,将被混合为同一个对象。两个对象键名冲突时,取组件对象的键值对。
  • 使用场景分析
    多个文件内,重复或可抽离代码。例如:屏幕resize监听事件等等

你可能感兴趣的:(【Vue】mixin学习)