---
title: event - äºä»¶ API
sidebar_position: 10
---
> **@types** [IPublicApiEvent](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/api/event.ts)
> **@since** v1.0.0
## 模åç®ä»
è´è´£äºä»¶å¤ç APIï¼æ¯æèªå®ä¹çå¬äºä»¶ã触åäºä»¶ã
## æ¹æ³
### on
çå¬äºä»¶
```typescript
/**
* çå¬äºä»¶
* add monitor to a event
* @param event äºä»¶åç§°
* @param listener äºä»¶åè°
*/
on(event: string, listener: (...args: any[]) => void): IPublicTypeDisposable;
```
ç¸å
³ç±»åï¼[IPublicTypeDisposable](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/type/disposable.ts)
### prependListener
çå¬äºä»¶ï¼ä¼å¨å
¶ä»åè°å½æ°ä¹åæ§è¡
```typescript
/**
* çå¬äºä»¶ï¼ä¼å¨å
¶ä»åè°å½æ°ä¹åæ§è¡
* @param event äºä»¶åç§°
* @param listener äºä»¶åè°
*/
prependListener(event: string, listener: (...args: any[]) => void): IPublicTypeDisposable;
```
ç¸å
³ç±»åï¼[IPublicTypeDisposable](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/type/disposable.ts)
### off
åæ¶çå¬äºä»¶
```typescript
/**
* åæ¶çå¬äºä»¶
* cancel a monitor from a event
* @param event äºä»¶åç§°
* @param listener äºä»¶åè°
*/
off(event: string, listener: (...args: any[]) => void): void;
```
### emit
触åäºä»¶
```typescript
/**
* 触åäºä»¶
* emit a message for a event
* @param event äºä»¶åç§°
* @param args äºä»¶åæ°
* @returns
*/
emit(event: string, ...args: any[]): void;
```
## 使ç¨ç¤ºä¾
### äºä»¶è§¦ååçå¬
```typescript
const eventName = 'eventName';
// äºä»¶çå¬
// æä»¶ä¸ååºçäºä»¶ï¼é»è®¤ä»¥ `common` 为åç¼ï¼ç嬿¶éè¦æ³¨æä¸
event.on(`common:${eventName}`);
// 触åäºä»¶
event.emit(eventName);
```
### setter å setter/plugin ä¹é´çèå¨
å¨ A setter ä¸è¿è¡äºä»¶æ³¨åï¼
```typescript
import { event } from '@alilc/lowcode-engine';
const SETTER_NAME = 'SetterA';
class SetterA extends React.Component {
componentDidMount() {
// è¿éç±äºé¢æ¿ä¸ä¼æå¤ä¸ª setterï¼ä½¿ç¨ field.id æ¥æ è®° setter å
this.emitEventName = `${SETTER_NAME}-${this.props.field.id}`;
event.on(`common:${this.emitEventName}.bindEvent`, this.bindEvent)
}
bindEvent = (eventName) => {
// do someting
}
componentWillUnmount() {
// setter æ¯ä»¥å®ä¾ä¸ºåä½çï¼æ¯ä¸ª setter 注éçæ¶åéè¦æäºä»¶ä¹æ³¨éæï¼é¿å
äºä»¶æ± è¿å¤
event.off(`common:${this.emitEventName}.bindEvent`, this.bindEvent)
}
}
```
å¨ B setter ä¸è§¦åäºä»¶ï¼æ¥å®æéä¿¡ï¼
```typescript
import { event } from '@alilc/lowcode-engine';
class SetterB extends React.Component {
bindFunction = () => {
const { field, value } = this.props;
// è¿éå±ç¤ºçåæä»¶è¿è¡éä¿¡ï¼äºä»¶è§åæ¯æä»¶å + æ¹æ³
event.emit('eventBindDialog.openDialog', field.name, this.emitEventName);
}
}
```