Vue中混入mixin的用法介绍

 更新时间:2022年10月17日 11:15:04   作者:爱思考的猪  
混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项

什么是混入?

混入通过注入配置项到vue实例用来提升复用性

基础使用

    const myMixin = {
      created: function () {
        this.hello();
      },
      methods: {
        hello: function () {
          console.log('hello from mixin');
        },
      },
    };
    var vm = new Vue({
      el: '#app',
      mixins: [myMixin],
    });

选项合并

选项合并发生在下面两种情况

  • mixins接收的是一个数组,mixin中的属性冲突时会发生合并
  • mixin属性和组件原有属性冲突时
    const myMixin = {
      created: function () {
        this.hello();
      },
      methods: {
        hello: function () {
          console.log('hello from mixin');
        },
      },
    };
    var vm = new Vue({
      el: '#app',
      mixins: [myMixin],
      created: function () {
        this.hello();
      },
      methods: {
        hello: function () {
          console.log('hello from vue instance');
        },
      },
    });

上述两种的选项合并规则是相同的:

  • 周期钩子冲突的时候,会合并成数组都保留,执行顺序是先执行minxi的钩子,再执行组件上的钩子
  • methods、computed这类值为对象的选项在冲突的时候以组件属性为准

自定义合并规则

除了使用上述默认的合并规则,还可以通过Vue.config.optionMergeStrategies自定义合并规则。

	Vue.config.optionMergeStrategies.myMixin=(toVal, fromVal){
	//返回合并的值
	};

通常对于值为对象的属性我们可以借用已有的合并规则

	//借用methods的规则
	Vue.config.optionMergeStrategies.myMixin=Vue.config.optionMergeStrategies.methods;

全局混入

混入也可以全局注册,使用时候要格外小心,它会影响到每一个组件/实例

    Vue.mixin({
      created: function () {
        console.log('mixin created');
      },
    });
    var vm1 = new Vue(...);
    var vm2 = new Vue(...);

总结

  • mixin混入通过注入配置项到vue实例提升复用性
  • 属性冲突时以组件内的属性为准,声明周期的钩子会保留多个

到此这篇关于Vue中混入mixin的用法介绍的文章就介绍到这了,更多相关Vue mixin内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 在vue项目中引用Iview的方法

    在vue项目中引用Iview的方法

    iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC 界面的中后台产品。这篇文章主要介绍了在vue项目中引用Iview的方法,需要的朋友可以参考下
    2018-09-09
  • 简述vue中的config配置

    简述vue中的config配置

    这篇文章主要介绍了vue中的config配置 ,本文给大家介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下
    2018-01-01
  • 解决vue-element-admin安装依赖npm install报错问题

    解决vue-element-admin安装依赖npm install报错问题

    这篇文章主要介绍了解决vue-element-admin安装依赖npm install报错问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • 基于vue cli重构多页面脚手架过程详解

    基于vue cli重构多页面脚手架过程详解

    本文分步骤给大家介绍了基于vue cli重构多页面脚手架过程,非常不错,具有参考借鉴价值,需要的朋友参考下
    2018-01-01
  • vue项目前端埋点的实现

    vue项目前端埋点的实现

    这篇文章主要介绍了vue项目前端埋点的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Vue中添加滚动事件设置的方法详解

    Vue中添加滚动事件设置的方法详解

    这篇文章主要给大家介绍了关于Vue中添加滚动事件设置的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • vue通过笛卡儿积实现sku库存配置方式

    vue通过笛卡儿积实现sku库存配置方式

    这篇文章主要介绍了vue通过笛卡儿积实现sku库存配置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • 优化Vue template中大量条件选择v-if的方案分享

    优化Vue template中大量条件选择v-if的方案分享

    本文我们将给大家详细的讲解一下如何优化Vue template 中的大量条件选择v-if,文中通过代码示例介绍的非常详细,有详细的优化方案,感兴趣的朋友可以参考阅读下
    2023-07-07
  • elementui实现表格(el-table)默认选中功能

    elementui实现表格(el-table)默认选中功能

    这篇文章主要介绍了elementui实现表格(el-table)默认选中功能,本文给大家分享实现思路结合实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2024-07-07
  • Vue通过ref父子组件拿值方法

    Vue通过ref父子组件拿值方法

    今天小编就为大家分享一篇Vue通过ref父子组件拿值方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09

最新评论