Vue2中mixins的介绍和使用

一、什么是mixins

一种分发 Vue 组件中可复用功能的非常灵活的方式,mixins 是一个 js 对象,它可以包含我们组件script中的任意功能选项,如:data、components、methods、created、computed 等等。我们只要将公用的功能以对象的方式传入 mixins 选项中,当组件使用 mixins 对象,所有 mixins 对象的选项都将被扩展到该组件本身的选项中来,这样就可以提高代码的重用性,并易于后期的代码维护。

当存在多个组件中的数据或者功能很相近时,我们就可以利用 mixins 将公共部分提取出来,通过 mixins 封装函数。

二、创建mixins

src--》创建mixins文件夹---》创建myMixins.js--》

三、使用mixins

组件中使用:

全局使用:

四、mixins的特点

1、所有的属性与方法再不同的组件中不共享数据

2、当与组件中数据与方法名重名时,组件中的会覆盖mixins中的(换句话说:会先调用mixins

五、mixins 中有异步请求的情况

当混入里面包含异步请求函数,而我们又需要在组件中使用异步请求函数的返回值时,我们会取不到此返回值,解决方案是:不要返回结果,而是直接返回异步函数

methods: {

   async getDate1() {

      let result = await new Promise((resolve,reject) => {

          let a = 1;

          setTimeout(() => {

            resolve(1)

          },500)

       })

       return result

    },

  }

// 组件中获取混入的异步函数,通过then 方法获取函数值。

import { myMixins } from "./myMixins.js";

export default {

  mixins: [myMixins],

  data() {

    return {}

  },

  mounted() {

    this.getDate1().then(res => {

      console.log(res)

    })

  }

}

六、与 vuex 的区别

vuex:  用来做状态管理,vuex中定义的变量在每个组件中均可以使用和修改,在任一组件中修改此变量的值之后,其他组件中此变量的值也会随之修改。相当于所有组件共享。

Mixins:  可以定义共用的变量,在每个组件中使用,引用组件中之后,各个变量是相互独立的,值的修改在组件中不会相互影响。组件直接使用是相互隔离的,数据互不影响。

六、与公共组件的区别

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

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值