vue mixins混入的使用

38 篇文章 0 订阅
1 篇文章 0 订阅

1.mixins就是混入,就是定义一部分公共的方法或者计算属性,然后混入到各个组件中使用,方便管理与统一修改,mixins是一种分发Vue组件中可复用功能的非常灵活的一种方式
一个混入对象可以包含任意组件选项。.比如组件的生命周期,data(){return{}},methods方法等,凡事能在组件上编写的都能在mixins中重新定义

2.什么时候使用Mixins
页面的风格不用,但是执行的方法和需要的数据类似,这时候我们就可以把公共的方法提出来,然后在混入需要用到的组件里面,直接调用。相同的方法写一遍即可

列如:

在src/components/mixin文件夹下创建对应的**.js文件,我的是audio.js

audio.js

import * as api from '../../api/index'
// eslint-disable-next-line no-unused-vars
export const audioUrl = {
  data: () => ({
    //scannedSuccess 扫码成功  scannedFailed  扫码失败   paymentFailed 支付失败
     voiceUrl:{},
  }),
  mounted(){
     this.getFixedSpeech()
  },
  methods: {
      //获取语音资源
    getFixedSpeech(){
        api.getFixedSpeech().then(res=>{
          this.voiceUrl=res
        })
      },
    voiceBroadcast(src){
     const audio = document.getElementById('audio')
     audio.src = src
     audio.play()
   },
  }
}
export const test1 ={
  data: () => ({
  }),
}
export const test2 ={
  data: () => ({
  }),
}

在组件中引入这个mixins对象,通过mixins:[xxx],使用mixins对象 可以混入多个mixins对象

import { audioUrl,test1.test2 } from "../components/mixin/audio"
export default {
  name: 'smain',
  //混入跟组件有同一个生命周期,混入对象会比组件的先执行
  mixins:[audioUrl,test1,test2], //混入的对象中谁在前面就先调用谁,如audioUrl=>test1=>test2
  data: () => ({
  }),
}

引入mixins之后,即可以像调用data那样调用混入的方法

//调用
this.voiceBroadcast(this.voiceUrl.paymentFailed )
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值