vue3 组件通信,vue3.0组件通信

  vue3 组件通信,vue3.0组件通信

  本文主要介绍了Vue3使用mitt进行组件通信的步骤,帮助大家更好的理解和学习使用Vue。感兴趣的朋友可以了解一下。

  :

目录

   1.装置

  2.将它引入到项目中并挂载它

  使用

  Vue2.x使用EventBus进行组件通信,而Vue3.x推荐mitt.js

  和Vue实例上的EventBus相比,mitt.js好在哪里?首先,它足够小,只有200字节。其次,它支持所有事件的监控和批量删除。它不依赖于Vue实例,所以可以跨框架使用。React或Vue,甚至jQuery项目也可以使用同一套库。

  

1. 安装

  推荐纱装(用了就知道有多滑了)

  纱线添加手套

  或者通过npm安装。

  npm安装-保存mitt

  

2. 引入到项目并挂载

  它可以在main.js中全局挂载

  //标准ES模块化引入方法

  从“mitt”导入mitt

  const app=createApp(App)

  //要安装在config.globalProperties上的vue3.x的全局实例

  app . config . global properties . $ event bus=new mitt()

  /common/EventBus.js:还可以封装一个ES模块,向外部公开一个Mitt实例。

  从“mitt”导入mitt

  导出默认新手套()

  /views/Home.vue:业务模块介绍使用。

  从“/common/EventBus.js”导入EventBus

  

3. 使用

  由on监控/发射触发

  /*

  * App.vue

  */

  //设置中没有这个。需要通过getCurrentInstance获取Vue实例。

  从“vue”导入{ getCurrentInstance }

  从“/common/Mp3Player.js”导入{ Mp3Player }

  导出默认值{

  setup(){

  //ctx相当于Vue2.x的这个

  const { ctx }=getCurrentInstance()

  //Monitor-如果有新任务就播放音效

  ctx。$EventBus.on(newTask ,data={

  Mp3Player.play()

  })

  //还可以通过*监听所有任务

  ctx。$EventBus.on(* ,data={

  console.log(EventBus进来,数据)

  })

  }

  }

  /*

  *控制. vue

  */

  //判断有新任务时触发。

  ctx。$EventBus.emit(newTask ,data)

  关闭移除事件

  导入{

  onBeforeUnmount,

  getCurrentInstance

  }来自“vue”

  导出默认值{

  setup(){

  const { ctx }=getCurrentInstance()

  onBeforeUnmount(()={

  //移除指定的事件

  ctx。$EventBus.off(newTask )

  //删除所有事件

  ctx。$EventBus.all.clear()

  })

  }

  }

  以上是Vue3使用mitt进行组件通信的步骤细节。更多关于Vue3使用mitt进行组件通信的信息,请关注我们的其他相关文章!

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

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