 
  
   简体中文 
 自 HBuilderX 2.0.0 起支持,使用指南
触发全局的自定义事件,附加参数都会传给监听器回调函数。
| HarmonyOS | 
|---|
| HBuilderX 4.23 | 
| 属性 | 类型 | 描述 | 
|---|---|---|
| eventName | String | 事件名 | 
| OBJECT | Object | 触发事件携带的附加参数 | 
代码示例
	uni.$emit('update',{msg:'页面更新'})
监听全局的自定义事件,事件由 uni.$emit 触发,回调函数会接收事件触发函数的传入参数。
| HarmonyOS | 
|---|
| HBuilderX 4.23 | 
| 属性 | 类型 | 描述 | 
|---|---|---|
| eventName | String | 事件名 | 
| callback | Function | 事件的回调函数 | 
代码示例
	uni.$on('update',function(data){
		console.log('监听到事件来自 update ,携带参数 msg 为:' + data.msg);
	})
监听全局的自定义事件,事件由 uni.$emit 触发,但仅触发一次,在第一次触发之后移除该监听器。
| HarmonyOS | 
|---|
| HBuilderX 4.23 | 
| 属性 | 类型 | 描述 | 
|---|---|---|
| eventName | String | 事件名 | 
| callback | Function | 事件的回调函数 | 
代码示例
	uni.$once('update',function(data){
		console.log('监听到事件来自 update ,携带参数 msg 为:' + data.msg);
	})
移除全局自定义事件监听器。
| HarmonyOS | 
|---|
| HBuilderX 4.23 | 
| 属性 | 类型 | 描述 | 
|---|---|---|
| eventName | String | 事件名 | 
| callback | Function | 事件的回调函数 | 
Tips
代码示例
$emit、$on、$off常用于跨页面、跨组件通讯,这里为了方便演示放在同一个页面
	<template>
		<view class="content">
			<view class="data">
				<text>{{val}}</text>
			</view>
			<button type="primary" @click="comunicationOff">结束监听</button>
		</view>
	</template>
	<script>
		export default {
			data() {
				return {
					val: 0
				}
			},
			onLoad() {
				setInterval(()=>{
					uni.$emit('add', {
						data: 2
					})
				},1000)
				uni.$on('add', this.add)
			},
			methods: {
				comunicationOff() {
					uni.$off('add', this.add)
				},
				add(e) {
					this.val += e.data
				}
			}
		}
	</script>
	<style>
		.content {
			display: flex;
			flex-direction: column;
			align-items: center;
			justify-content: center;
		}
		.data {
			text-align: center;
			line-height: 40px;
			margin-top: 40px;
		}
		button {
			width: 200px;
			margin: 20px 0;
		}
	</style>
注意事项
eventName 应避免使用 uni 开头,以免与 uni-app 内置事件冲突