当前位置: 首页 > news >正文

全局事件总线

全局事件总线

在这里插入图片描述

  • 功能:可以解决所有组件之间通信传数据的问题
  • 原理:通过一个共享对象,将所有组件全部绑定到对象上,即可通过这个对象实现组件与组件之间的传递数据,而这个共享对象叫做全局事件总线。

如何分清楚谁是发送方,谁是接收方?谁用绑定事件,谁用触发事件?

  • 假设:我向你传送数据,我是发送方,你是接收方。
    • 若我不向你发送数据,则你就不知道数据的内容,无法拿取(绑定)。(我不触发,你不能绑定,因为你没有数据)
    • 只有我发送数据给你,你才能知道数据的内容,才能对数据进行拿取。(谁发送谁触发,谁拿取谁绑定)

共享对象创建位置:main.js文件

  • 第一种方法:创建vc对象
// 获取 VueComponent 构造函数
const VueComponentConstructor = Vue.extend({})
// 创建 vc 对象
const vc = new VueComponentConstructor()
// 使所有组件共享 vc 对象
Vue.prototype.$bus = vc
  • 第二种方法(常用):使用原有的vm对象
    • 在Vue初始化时(beforeCreate),创建共享对象vm
new Vue({el : '#app',render: h => h(App),beforeCreate(){// this指向的是vmVue.prototype.$bus = this}
})

以上代码中出现的$bus有什么作用?

  • $bus:事件总线,用来管理总线。
  • 其他组件在调用vc共享对象时可通过this.$bus.$on()this.$bus.$emit()来绑定或触发事件

数据发送方:触发事件$emit

<template><div><button @click="triggerEvent">触发事件</button></div>
</template><script>export default {name : 'Vip',data(){return{name : 'zhangsan'}},methods : {triggerEvent(){this.$bus.$emit('event', this.name)}}}
</script>

数据接收方:绑定事件$on

<template><div><Vip></Vip></div>
</template><script>import Vip from './components/Vip.vue'export default {name : 'App',mounted() {this.$bus.$on('event', this.test)},methods : {test(name){console.log(name);}},components : {Vip}}
</script>console.log(name);}},components : {Vip}}
</script>
http://www.lryc.cn/news/195799.html

相关文章:

  • 通讯网关软件026——利用CommGate X2ORACLE-U实现OPC UA数据转入ORACLE
  • RAII与智能指针
  • 易云维智慧工业云平台助力广西国企培育数字产业化平台,打造数字化产业生态
  • 【密码学】第三章、分组密码
  • 宁夏企业过等保选哪家测评机构好?选哪家堡垒机好?
  • Vue绑定style和class 对象写法
  • 使用vue-sign插件
  • python究竟可以用来做些什么
  • Segment Anything(论文解析)
  • @ConditionalOnProperty 用法
  • 如何选择超声波清洗机、超声波清洗机排行榜
  • 大家这么喜欢这件羽绒服的吗?眼光太好啦
  • pytorch 入门(二)
  • 2023年国赛-大数据应用开发(师生同赛)_赛项规程样题解析
  • MNE系列教程1——MNE的安装与基本绘图
  • 黑马JVM总结(三十六)
  • 【React】01-React的入门
  • 【C语言进阶】自定义类型:结构体,枚举,联合
  • Sklearn 聚类算法的性能评估
  • 9月最新外贸进出口数据出来了,外贸整体向好
  • SSL证书有效期越来越短是什么原因?
  • 【前段基础入门之】=>CSS3新特性 3D 变换
  • form表单的三种封装方法(Vue+ElementUI)
  • 云原生周刊:CNCF 宣布 Cilium 毕业 | 2023.10.16
  • 岩土工程监测利器:多通道振弦数据记录仪应用隧道监测
  • hive排序
  • 网络安全入门教程(非常详细)从零基础入门到精通
  • 自动驾驶中的数据安全和隐私
  • 回应:淘宝支持使用微信支付?
  • k8s的etcd启动报错