vue 消息通知组件,vue 消息总线

  vue 消息通知组件,vue 消息总线

  本文主要详细介绍了Vue组件的事件总线和消息发布订阅。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下,希望能帮到你。

  

目录

  事件总线消息发布和订阅概要介绍

  

简介

  本文主要介绍事件总线的定义和编写方法以及Vue如何实现消息的订阅和发布。

  

事件总线

  事件是组件之间的一种通信方式,适用于任何组件之间的通信,如两个不相关的组件、父子组件、子代组件等。

  事件总线有两个特性:

  它是一个vue组件实例或vue实例,充当消息中继站。如果组件A和B想要通信,则组件A将消息存储到中继站,而组件B接收该消息,反之亦然。所有组件都必须能够访问事件总线。如果组件A和B通信,如果A向B发送数据,则需要以下步骤:

  大前提是你需要创建一个事件总线,通常使用vm实例本身作为事件总线,并在某个时间保存在Vue构造器的prototype对象中。因为组件实例的原型对象的原型对象=the实例的原型对象,所以所有组件实例都获得事件总线。

  1.b(接收方)需要始终将自定义事件绑定到事件总线,并设置事件回调。

  2.当A(发送方)要发送数据时,只需要在事件总线上触发B绑定的自定义事件,将数据传递过来即可。

  main.js

  //引入vue依赖

  从“vue”导入Vue

  //引入组件App

  从导入应用程序。/App.vue

  //关闭生产提示

  Vue.config.productionTip=false

  //创建一个vue实例

  新Vue({

  render: h=h(App),

  创建之前(){

  //事件总线通常设置在beforeCreate生命周期函数中。

  //下面的代码是将vm对象本身设置成Vue的prototype对象。属性名通常是$bus,这不是必需的。

  Vue.prototype. $ bus=this

  }

  //为这个vue实例配置管理id为app的容器。

  }).$ mount(“# app”)

  App.vue:

  模板

  !-写作结构-

  差异

  答/答

  整点

  B/B

  /div

  /模板

  脚本

  //修改后的

  //介绍组件A和组件B,涉及es模块化的语法。

  从导入。/组件/A.vue

  从导入B。/组件/B.vue

  导出默认值{

  组件:{

  //注册组件

  一,

  B

  }

  }

  /脚本

  风格

  /风格

  B.vue:

  模板

  差异

  DIV组件的名称:{{name}}/div

  divA组件的名称:{{NameForA}}/div

  /div

  /模板

  脚本

  导出默认值{

  data() {

  返回{

  姓名:叶昊聪,

  名称论坛:“”

  }

  },

  方法:{

  //事件触发时的回调函数

  getNameFromA(nameFromAVC){

  Console.log(从组件A接收名称:,nameFromAVC);

  这个。NameForA=nameFromAVC

  }

  },

  已安装(){

  //将自定义事件绑定到事件总线。

  这个。$巴士。$on(getNameFromA ,this . getname froma);

  },

  销毁前(){

  //通常,当组件被销毁时,需要解除绑定自定义事件。

  这个。$巴士。$off(getNameFromA )

  },

  }

  /脚本

  风格

  /风格

  A.vue:

  模板

  差异

  div{{name}}/div

  Button @click=sendName 将Name属性的值发送给其他组件/button

  /div

  /模板

  脚本

  导出默认值{

  data() {

  返回{

  姓名:“廖仙燕”

  }

  },

  方法:{

  sendName(){

  //发送方触发事件

  这个。$巴士。$emit(getNameFromA ,this . name);

  }

  },

  }

  /脚本

  风格

  /风格

  效果:

  当组件被销毁时,通常最好取消绑定自定义事件:

  

消息的发布订阅

  订阅与发布的定义:

  1.它是组件之间的一种通信方式。

  类似于消息中心,组件A在消息中心订阅一条消息,然后一旦消息组件B在消息中发布消息,组件A会立即接收消息并执行相应的回调。

  通常使用第三方消息订阅发布库,这里推荐pubsub-js。

  步骤1:安装依赖项:npm i pubsub-js

  步骤2:在消息接收方订阅消息。

  步骤3:在消息的发送方发布消息。

  或者以上面的A、B两个成分为例。组件A是发送方,组件B是接收方。

  第二步:

  在B组件定义消息:

  步骤3:在组件A中发布消息:

  效果:

  当组件被销毁时,通常需要取消订阅消息。

  

总结

  本文到此为止。希望能帮到你,也希望你能多关注我们的更多内容!

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

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