[Vue] Mixins


https://vuejs.org/v2/guide/mixins.html

Mixin 可用來分離組建中重複出現的資料、函式等,將其抽出,透過引用的方式使用,引入的 Mixin 中的資料、Methods 甚至生命週期將被「混入」組件中。說起來有點像是 Component,具備可複用性,只是它沒有 View 的部分。

若組件中已存在相同名稱的資料或函式,會以 Component 中的為優先

範例:

sampleMixin.js

export default {
  methods: {
    someMethod: function () {
      console.log('I\'m method')
    }
  }
}

someComponent.vue

import sample from './sampleMixin.js';
export default {
   mixins: [sample],
   created() {
      this.someMethod()
   }
}

全域引入

有些 Mixin 我們希望在引入後可隨時全域做使用,透過在 main.js 引入,即可達到此效果,不過也要注意容易會有污染的問題。

承上範例,若在 main.js 中引入,則組件中就可以直接使用了。

main.js

import sample from './sampleMixin.js';
Vue.mixin(sample)

someComponent.vue

// import sample from './sampleMixin.js';
export default {
   // mixins: [sample],
   created() {
      this.someMethod()
   }
}

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *