# uni.$on(eventName, callback)

监听自定义事件。事件可以由 uni.$emit 触发。回调函数会接收 uni.$emit 传递的参数。

# 参数

名称 类型 必填 默认值 描述
eventName string - -
callback () => void - -

# $on 兼容性

Android iOS web
3.91 4.11 4.0

# 参见

相关 Bug

# uni.$off(eventName, callback)

移除自定义事件监听器。如果提供了事件名和回调,则只移除这个回调的监听器。 4.13+ 开始支持第二个参数为可选,如果仅提供事件名,则移除该事件的所有监听器。

# 参数

名称 类型 必填 默认值 描述
eventName string - -
callback () => void | null -

# $off 兼容性

Android iOS web
3.91 4.11 4.0

# 参见

相关 Bug

# uni.$once(eventName, callback)

监听一个自定义事件。事件只触发一次,在第一次触发之后移除事件监听器。

# 参数

名称 类型 必填 默认值 描述
eventName string - -
callback () => void - -

# $once 兼容性

Android iOS web
3.91 4.11 4.0

# 参见

相关 Bug

# uni.$emit(eventName, args?)

触发自定义事件,附加的参数会传递给事件监听器。

# 参数

名称 类型 必填 默认值 描述
eventName string - -
args any | null -

# $emit 兼容性

Android iOS web
3.91 4.11 4.0

# 参见

相关 Bug

# 示例

hello uni-app x

Template

Script

<template>
  <!-- #ifdef APP -->
  <scroll-view class="page-scroll-view">
  <!-- #endif -->
    <view>
      <button @click="on">开始监听</button>
      <button @click="once">监听一次</button>
      <button @click="off">取消监听</button>
      <!-- <button @click="offAll">取消全部监听</button> -->
      <button @click="emit">触发监听</button>
      <button @click="clear">清空消息</button>
      <view class="box">
        <view>收到的消息:</view>
        <view>
          <view v-for="(item, index) in log" :key="index">{{ item }}</view>
        </view>
      </view>
    </view>
  <!-- #ifdef APP -->
  </scroll-view>
  <!-- #endif -->
</template>



<style>
  .box {
    padding: 10px;
  }
</style>

# 通用类型

# GeneralCallbackResult

名称 类型 必备 默认值 描述
errMsg string - 错误信息