vue中混入mixin,vue的mixin用法

  vue中混入mixin,vue的mixin用法

  如果在每个组件中重复定义这些属性和方法,会导致项目中代码冗余,增加维护难度。针对这种情况,官方提供了Mixins功能,使用Vue mixins大有裨益。以下是Vue mixins的使用方法。请有需要的朋友参考。

  

目录

  前言

  1.什么是混合蛋白?

  第二,什么时候用Mixins?

  三、如何创建Mixins?

  四。如何使用Mixins?

  动词(verb的缩写)混合蛋白的特性

  不及物动词Mixins合并冲突

  七。与vuex的区别

  八。与普通部件的区别

  

前言

  随着我们的项目越做越大,我们会发现组件之间可能会有很多类似的功能。您复制并粘贴相同的代码段(数据、方法、观察、安装等。)一遍又一遍。如果在每个组件中重复定义这些属性和方法,会造成项目的冗余,提高维护难度。针对这种情况,官方提供了Mixins功能。

  

一、什么是Mixins?

  Mixins (mixed in),官方描述是一种非常灵活的在Vue组件中分发可重用功能的方式。mixins是一个js对象,它可以包含我们组件中脚本项中的任何函数选项,如数据、组件、方法、创建、计算等。只要我们把共享的功能以对象的形式传入mixins选项中,当一个组件使用mixins对象时,mixins对象的所有选项都会混合到组件本身的选项中,从而提高代码的可重用性,让你的代码保持干净,易于维护。

  

二、什么时候使用Mixins?

  当我们在多个组件中有数据或类似的功能时,我们可以使用mixins来提取公共部分。通过mixins封装的函数,用组件调用它们不会改变函数作用域之外的内容。

  

三、如何创建Mixins?

  在src目录下创建一个mixins文件夹,在文件夹下新建一个myMixins.js文件。我们前面说过mixins是一个js对象,所以我们应该以对象的形式定义myMixins。在对象中,我们可以像vue组件一样定义我们的数据、组件、方法、已创建、已计算和其他属性,并通过export导出对象。

  

四、如何使用Mixins?

  在要调用的组件中引入myMixins.js文件,然后在导出默认中引入需要的对象。

  

五、Mixins的特点

  [5.1]组件之间不共享方法和参数。虽然一个组件调用mixins并将其属性合并到自己的组件中,但是它的属性只会被当前组件识别,不会被共享,即其他组件无法从当前组件获取mixins中的数据和方法。

  首先,我们在混合对象myMixins.js中定义一个年龄字段和一个getAge方法

  导出常量myMixins={

  组件:{},

  data() {

  返回{

  年龄:18,

  }

  },

  已安装(){

  this.getAge()

  },

  方法:{

  getAge() {

  console.log(this.age)

  }

  }

  }

   1对组件1中的num的操作

  从“@/mixins/myMixins.js”导入{ myMixins };

  导出默认值{

  mixins: [myMixins],

  data() {

  返回{}

  },

  已创建(){

  这个时代

  },

  }

  部件2不工作。

  导出默认值{

  mixins: [myMixins],

  data() {

  返回{}

  },

  }

  我们分别切换到两个页面来查看控制台输出。会发现分量1改变了age中的值,分量2中age的值仍然是混合对象的初始值,不随分量1的增加而改变。

  【5.2】引入mixins后,组件会将它们合并,mixins中的数据和方法会扩展到当前的组件中。在合并的过程中,会有冲突。接下来,让我们学习更多关于Mixins合并冲突的知识。

  

六、Mixins合并冲突

  [6.1]具有对象值(组件、方法、计算、数据)的选项在混合到组件中时将被合并,当关键字冲突时组件将优先,组件中的关键字将覆盖混合的对象。

  我们给混合对象添加age属性,getAge1方法,getAge2方法。

  //myMixins.js

  导出常量myMixins={

  组件:{},

  data() {

  返回{

  年龄:18,

  }

  },

  方法:{

  getAge1() {

  console.log(age1 from mixins=,this.age)

  },

  getAge2() {

  console.log(age2 from mixins=,this.age)

  },

  }

  }

  我们给引入了myMixins文件的组件添加age属性、getAge1方法和getAge3方法。

  //template.vue

  从“@/mixins/myMixins.js”导入{ myMixins };

  导出默认值{

  mixins: [myMixins],

  data() {

  返回{

  年龄:20,

  }

  },

  已安装(){

  this . getage 1();

  this . getage 2();

  this . getage 3();

  },

  方法:{

  getAge1() {

  console.log(age1 from template=,this.age)

  },

  getAge3() {

  console.log(age3 from template=,this.age)

  },

  }

  }

  我们会发现组件的年龄覆盖了混合对象的年龄,组件的getAge1方法覆盖了混合对象的getAge1方法。

  [6.2]带有函数值的选项(created,mounted)在与组件混合时会被合并调用,混合对象中的钩子函数会在组件中的钩子函数之前被调用。

  

七、与vuex的区别

  Vuex:用于状态管理,其中定义的变量可以在每个组件中使用和修改。在任何组件中修改该变量的值后,该变量在其他组件中的值也会被修改。

  Mixins:可以在每个组件中定义和使用公共变量。引入组件后,变量之间相互独立,值的修改在组件中不会相互影响。

  

八、与公共组件的区别

  组件:在父组件中引入一个组件,相当于在父组件中给出一个独立的空间给子组件使用,然后根据道具传递值,但本质上两者是相对独立的。

  Mixins:是引入后与组件中的对象和方法合并,相当于扩展了父组件的对象和方法,可以理解为形成一个新的组件。

  关于Vue对mixins用法的详细解释,本文到此结束。关于Vue mixins的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: