mixins
是一种分发Vue组件中可复用功能的一种灵活方式。vue
mixins
是一个JavaScript对象,能够包含组件中的任意选项,好比Vue实例中生命周期的各个钩子函数,也能够是data
、components
、methods
或directives
等。在Vue中,mixins
为咱们提供了在Vue组件中共用功能的方法。使用方式很简单,将共用的功能以对象的方式传入mixins
选项中。当组件使用mixins
对象时,全部mixins
对象的选项都将被混入该组件自己的选项。数组
简单的说:能够将页面上复用的代码提取出来放在一个js文件里,经过使用mixins引用,页面上能够直接使用mixins里的方法或值等。函数
数据data
合并:以组件数据优先
钩子函数合并:会所有被合并到一个数组中,所以都会被执行,而且mixins
对象中的钩子会先被执行。
值为对象选项合并:好比methods
、components
和directives
,将被混合为同一个对象。当两个对象键名冲突时,组件选项优先。code
mixins.js component
export const Mixin1 = { data() { return { msg:'111' }; }, methods: { fn1() { ... }, } }; export const Mixin2 = { methods: { fn2() { ... }, } };
HelloWorld.vue对象
<template> <div> <button @click="fn2">{{msg}}</button> </div> </template> <script> import {Mixin1, Mixin2} from "./mixins.js"; export default { name: "HelloWorld", mixins: [Mixin1, Mixin2] }; </script>