我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Vue3使用mitt进行组件通信的步骤

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Vue3使用mitt进行组件通信的步骤

  • Vue2.x使用EventBus进行组件通信,而Vue3.x推荐使用mitt.js。
  • 比起Vue实例上的EventBus,mitt.js好在哪里呢?首先它足够小,仅有200bytes,其次支持全部事件的监听和批量移除,它还不依赖Vue实例,所以可以跨框架使用,React或者Vue,甚至jQuery项目都能使用同一套库。

1. 安装

推荐使用yarn安装(用过都知道有多丝滑)


yarn add mitt

或者通过npm安装


npm install --save mitt

2. 引入到项目并挂载

可以在main.js挂载到全局


// 标准的ES模块化引入方式
import mitt from 'mitt'

const app = createApp(App)

// vue3.x的全局实例,要挂载在config.globalProperties上
app.config.globalProperties.$EventBus = new mitt()

/common/EventBus.js:也可以封装一个ES模块,对外暴露一个Mitt实例


import mitt from 'mitt'
export default new mitt()

/views/Home.vue:业务模块引入来使用


import EventBus from '/common/EventBus.js'

3. 使用

通过on监听/emit触发



// setup中没有this,需要通过getCurrentInstance来获取Vue实例
import { getCurrentInstance } from 'vue'
import { Mp3Player } from '/common/Mp3Player.js'

export default {
  setup(){
    // ctx等同于Vue2.x的this
    const { ctx } = getCurrentInstance()
    
    // 监听-如果有新任务则播放音效
    ctx.$EventBus.on('newTask', data => {
      Mp3Player.play()
    })

    // 也可以通过*监听所有任务
    ctx.$EventBus.on('*', data => {
      console.log('EventBus come in', data)
    })
  }
}



// 判断有新任务时,触发
ctx.$EventBus.emit('newTask', data)

off移除事件


import {
    onBeforeUnmount,
    getCurrentInstance
  } from 'vue'

export default {
  setup(){
    const { ctx } = getCurrentInstance()

    onBeforeUnmount(() => {
      // 移除指定事件
      ctx.$EventBus.off('newTask')

      // 移除全部事件
      ctx.$EventBus.all.clear()
    })
  }
}

以上就是Vue3使用mitt进行组件通信的步骤的详细内容,更多关于Vue3 用mitt进行组件通信的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Vue3使用mitt进行组件通信的步骤

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Vue3全局组件通信之provide/inject怎么使用

本篇内容介绍了“Vue3全局组件通信之provide/inject怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、前言顾名思义,爷
2023-07-06

Vue3 echarts组件化及使用hook进行resize方式

这篇文章主要介绍了Vue3 echarts组件化及使用hook进行resize方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-05-16

vue组件非单文件组件的使用步骤

组件又分为非单文件组件和单文件组件,一般常用的就是单文件组件,这篇文章主要介绍了vue组件非单文件组件的使用步骤,需要的朋友可以参考下
2023-01-11

Vue3中的异步组件defineAsyncComponentAPI怎么使用

传递工厂函数作为参数defineAsyncComponent方法接收一个工厂函数是它的基本用法,这个工厂函数必须返回一个Promise,Promise的resolve应该返回一个组件。我们这里以VueCli创建的项目为例,这里我稍微做了一下修改,将头部的图片拆分为一个组件,代码如下:importLogoImgfrom'./components/LogoImg.vue'importHelloWorldfrom'./components/HelloWo
2023-05-21

Vue封装通用table组件的详细步骤

本篇内容介绍了“Vue封装通用table组件的详细步骤”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目录前言为什么需要封装table组件?第
2023-06-20

Angular组件间进行通信的方法有哪些

这篇“Angular组件间进行通信的方法有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Angular组件间进行通信的方
2023-07-04

React父子组件间的通信是如何进行的

本篇内容介绍了“React父子组件间的通信是如何进行的”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!父子组件通信方式(1)传递数据(父传子)
2023-07-05

React父子组件间的通信是怎样进行的

这篇文章主要介绍了React中父子组件通信详解,在父组件中,为子组件添加属性数据,即可实现父组件向子组件通信,文章通过围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
2023-03-14

Vue3中使用ref标签对组件进行操作方法

这篇文章主要介绍了Vue3中使用ref标签对组件进行操作方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2023-05-16

Vue3异步组件Suspense的使用方法详解

这篇文章主要介绍了Vue3异步组件Suspense的使用方法详解,需要的朋友可以参考下
2023-01-28

Vue3 echarts组件化及使用hook进行resize的方法是什么

echarts组件化及使用hook进行resizehook本质是一个函数,把setup函数中使用的CompositionAPI进行了封装组件化echarts实例import*asechartsfrom"echarts";importuseResizefrom"@/hooks/useResize";//hook代码见下方const{proxy}=getCurrentInstance();//获取实例中的proxyletechart;letechartInst
2023-05-23

vue父子组件进行通信方式是怎样的

这篇文章主要介绍“vue父子组件进行通信方式是怎样的”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue父子组件进行通信方式是怎样的”文章能帮助大家解决问题。如图所示,父组件向子组件传递数据,可以通
2023-06-29

在Linux上安装和使用Rsync进行同步的步骤

本篇内容主要讲解“在Linux上安装和使用Rsync进行同步的步骤”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“在Linux上安装和使用Rsync进行同步的步骤”吧!对于各种组织和公司,数据对他
2023-06-13

编程热搜

目录