Vue--混入(Mixin)

Vue–混入(Mixin)

当不同组件有相同功能时,不必重复定义属性和方法,可使用vue中的混入(Mixin)来分发 Vue 组件中的可复用功能。一个 mixin 对象可以包含任意组件选项,即data、methods、生命周期、computed等。当组件使用 mixin 对象时,所有 mixin 对象的选项将被“混合”进入该组件本身的选项。

  • mixin的钩子函数会先于组件执行

  • mixin方法和参数在各组件中是不共享的

export const myMixins = {
   components:{},
   data(){
      return {
         count:1
      }
   },
   mounted() {},
   methods:{},
   computed:{}
}

组件1

// 引入
import {myMixins} from "@/目录";
export default {
   mixins:[myMixins], // 将mixin 对象的选项将被“混合”进入该组件本身的选项
   mounted() {
	  this.count = this.count+2
      console.log(this.count++) // 输出为3
   },
}

组件2直接输出为1

  • 引入mixin后,组件会将mixin中的数据和方法扩展到当前组件中,在合并过程中如果出现冲突,会优先组件覆盖掉混入对象
import {myMixins} from "@/目录";
export default {
   mixins:[myMixins], // 将mixin 对象的选项将被“混合”进入该组件本身的选项
   data(){
   		return{ count:"测试" }
   },
   mounted() {
	  this.count = this.count+2
      console.log(this.count++) // 输出为 测试2
   },
}
  • Mixin与Vuex的不同:Vuex具有响应式,即在任意组件中修改变量,其他组件中的变量也会随之改变,而Mixin的不共享,在任意组件中修改与其他组件互不影响

待续。。。

上一篇:mixin混入


下一篇:开源视频会议bigbluebutton开发(3)——架构体系图