eventbus事件分发 子类父类
时间: 2024-08-16 08:07:36 浏览: 29
EventBus是一种事件驱动的设计模式,用于Android应用中的消息传递。它允许您在应用程序的不同组件之间发送和接收自定义事件。在子类继承父类的情境下,EventBus可以使得父类作为事件发布者,当其状态发生改变或需要通知其他部分更新时,通过`post()`方法发布一个事件。
例如,如果有一个基础的`BaseModel`类,它是所有业务模型的父类,它实现了某个特定事件接口`CustomEvent`。当`BaseModel`的状态发生变化时,它会创建一个`CustomEvent`的实例并发布到EventBus。子类如`ChildModel`可能会订阅这个事件,所以在接收到事件时执行相应的处理逻辑。
相关问题
Nuxt2怎么使用eventBus事件总线
在 Nuxt2 中使用 eventBus 事件总线,可以通过以下步骤实现:
1. 创建一个 eventBus.js 文件
在项目的根目录中,创建一个 eventBus.js 文件,代码如下:
```javascript
import Vue from 'vue';
export const eventBus = new Vue();
```
这里使用了 Vue 的实例来创建 eventBus,并且将它导出,这样就可以在项目中的任何地方使用它了。
2. 在需要使用 eventBus 的组件中引入 eventBus
在需要使用 eventBus 的组件中,可以使用以下代码来引入 eventBus:
```javascript
import {eventBus} from '@/eventBus.js';
```
这里的 @ 表示项目的根目录,如果 eventBus.js 文件不在根目录中,那么需要改成相应的路径。
3. 使用 eventBus 发送事件
在需要发送事件的地方,可以使用以下代码来发送事件:
```javascript
eventBus.$emit('eventName', data);
```
这里的 eventName 是事件的名称,data 是传递的数据。
4. 使用 eventBus 监听事件
在需要监听事件的地方,可以使用以下代码来监听事件:
```javascript
eventBus.$on('eventName', (data) => {
// 处理事件
});
```
这里的 eventName 是事件的名称,data 是传递的数据。事件触发后,会执行回调函数中的代码。
总结:
以上就是在 Nuxt2 中使用 eventBus 事件总线的方法,通过使用 eventBus,可以在组件之间方便地进行通信。需要注意的是,eventBus 的使用需要谨慎,过多的使用可能会导致代码的可读性和维护性降低。
uniapp子类监听父类传来的值
在UNIAPP中,可以使用事件总线来实现子组件监听父组件传来的值。
首先,在父组件中定义一个事件总线,例如:
```
import Vue from 'vue'
export const EventBus = new Vue()
```
然后,在父组件中需要传递数据时,通过事件总线触发事件,并将需要传递的数据作为参数传递,例如:
```
import { EventBus } from '@/common/eventBus.js'
EventBus.$emit('eventName', data)
```
在子组件中监听事件,并在事件回调函数中处理数据,例如:
```
import { EventBus } from '@/common/eventBus.js'
EventBus.$on('eventName', (data) => {
// 处理数据
})
```
这样就可以实现子组件监听父组件传来的值了。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)