Vue(Vue2+Vue3)——44.全局事件总线、45.TodoList案例_事件总线

简介: Vue(Vue2+Vue3)——44.全局事件总线、45.TodoList案例_事件总线

44 全局事件总线(GlobalEventBus)


全局事件总线是vue中特别厉害的一种组件中通信的方式,它可以实现任意组件中通信,随便拿出来两个组件就能互通数据,就像对讲机一样,它在开发中用的也是特别的多


44.1 编写案例


首先准备两个组件,它们之间是兄弟关系,被App统一管理

简单的页面如下


44.2 安装全局事件总线


在main.js中定义$bus(总线),因为main.js是整个程序的入口,然后在vm中使用钩子函数beforeCreate,在vm创建前就创建,这样全局的vc以及vm都可以看到它了

beforeCreate(){
         // 安装全局事件总线
        Vue.prototype.$bus=this
    }


44.3 组件传递数据使用中线


安装好了全局事件之后,就可以使用了,下面演示在兄弟组件传递数据


44.4  组件销毁之前解绑事件


因为所有人都在用总线,如果有一天组件以及被销毁掉了,那么这个组件还占用总线,就会占用资源,所以最好在组件销毁之前解绑事件


44.5 总结


  1. 一种组件间通信的方式,适用于任意组件间通信
  2. 安装全局事件总线:
new Vue({
        ......
        beforeCreate() {
                Vue.prototype.$bus = this //安装全局事件总线,$bus就是当前应用的vm
        },
    ......
})
  1. 使用事件总线:
  1. 接收数据:A组件想接收数据,则在A组件中给$bus绑定自定义事件,事件的回调留在A组件自身。
methods(){
  demo(data){......}
}
......
mounted() {
  this.$bus.$on('xxxx',this.demo)
}
  1. 提供数据:his.$bus.$emit('xxxx',数据)
  1. 最好在beforeDestroy钩子中,用$off去解绑当前组件所用到的事件。


45 TodoList案例_事件总线


学习完全局事件总线之后,改造下TodoList案例

首先是安装全局事件

主要的改装点就是App和Item组件的通信,属于是爷爷和孙子之间的通信

相关文章
|
1天前
|
存储 JavaScript 前端开发
vue3的脚手架模板你真的了解吗?里面有很多值得我们学习的地方!
【10月更文挑战第21天】 vue3的脚手架模板你真的了解吗?里面有很多值得我们学习的地方!
vue3的脚手架模板你真的了解吗?里面有很多值得我们学习的地方!
|
1天前
|
前端开发 JavaScript
简记 Vue3(一)—— setup、ref、reactive、toRefs、toRef
简记 Vue3(一)—— setup、ref、reactive、toRefs、toRef
|
2天前
Vue3 项目的 setup 函数
【10月更文挑战第23天】setup` 函数是 Vue3 中非常重要的一个概念,掌握它的使用方法对于开发高效、灵活的 Vue3 组件至关重要。通过不断的实践和探索,你将能够更好地利用 `setup` 函数来构建优秀的 Vue3 项目。
|
5天前
|
JavaScript Java API
vue3知识点:setup
vue3知识点:setup
18 5
|
5天前
|
资源调度 JavaScript 前端开发
vue3第一章基础:创建Vue3.0工程,包括使用vue-cli 创建、使用 vite 创建
vue3第一章基础:创建Vue3.0工程,包括使用vue-cli 创建、使用 vite 创建
14 5
|
5天前
|
API
vue3知识点:reactive对比ref
vue3知识点:reactive对比ref
15 3
|
5天前
|
JavaScript API
vue3知识点:ref函数
vue3知识点:ref函数
15 2
|
5天前
|
JavaScript API
Vue3快速上手简介
Vue3快速上手简介
18 2
|
5天前
|
API
vue3知识点:reactive函数
vue3知识点:reactive函数
13 1
|
5天前
|
JavaScript 前端开发 API
vue3知识点:Vue3.0中的响应式原理和 vue2.x的响应式
vue3知识点:Vue3.0中的响应式原理和 vue2.x的响应式
12 0