当前位置:首页 > uni-app

uniapp $on

2026-01-13 20:52:27uni-app

uniapp $on 方法详解

$on 是 UniApp 中用于监听全局事件的 API,常用于跨页面或跨组件通信。它基于 Vue 的事件机制,允许在全局范围内触发和监听自定义事件。

基本语法

uni.$on(eventName, callback)
  • eventName:字符串类型,表示事件名称。
  • callback:事件触发时的回调函数,接收事件参数。

使用场景

  1. 跨页面通信:例如在页面 A 触发事件,页面 B 监听并响应。
  2. 全局状态管理:替代简单的 Vuex 场景,实现轻量级状态共享。
  3. 插件通信:在插件或模块间传递消息。

示例代码

监听事件

// 在页面或组件的生命周期中监听
export default {
  onLoad() {
    uni.$on('updateData', (data) => {
      console.log('接收到数据:', data)
      this.data = data
    })
  }
}

触发事件

// 在任意地方触发事件
uni.$emit('updateData', {msg: 'Hello World'})

注意事项

  • 内存泄漏:组件销毁时需手动移除监听,否则可能导致回调函数堆积。
  • 事件命名冲突:建议使用命名空间(如 module:event)避免重复。
  • 性能影响:频繁使用可能影响性能,复杂场景建议使用 Vuex。

移除监听

通过 uni.$off 移除指定事件监听:

// 移除单个事件
uni.$off('updateData', callback)

// 移除所有事件
uni.$off('updateData')

兼容性

  • 支持 H5、小程序及 App 端。
  • 小程序端需注意部分平台的事件队列差异。

uniapp $on

标签: uniappon
分享给朋友:

相关文章

uniapp开发

uniapp开发

uniapp开发简介 uniapp是一款基于Vue.js的跨平台开发框架,支持一次开发,多端部署。开发者可以通过编写一套代码,发布到iOS、Android、Web以及各种小程序平台(如微信、支付宝、百…

uniapp 推送

uniapp 推送

uniapp 推送实现方法 uniapp 推送功能可以通过多种方式实现,主要包括使用第三方推送服务、原生插件或云服务。以下是几种常见的实现方案: 使用 UniPush 服务 UniPush 是…

uniapp删除

uniapp删除

卸载 uniapp 项目依赖 在项目根目录下执行以下命令,移除 node_modules 和依赖锁文件: rm -rf node_modules package-lock.json 如需清理全局…

uniapp 极光推送

uniapp 极光推送

uniapp 集成极光推送的方法 在 uniapp 中集成极光推送,需要使用官方提供的插件或自行封装原生模块。以下是具体实现方式: 使用官方插件 在 uni-app 插件市场搜索「极光推送」插件,…

uniapp极光推送

uniapp极光推送

uniapp极光推送集成步骤 准备工作 注册极光推送开发者账号,创建应用获取AppKey。确保uniapp项目已配置好原生插件支持。 安装插件 在uniapp项目manifest.json文件中,…

uniapp应用市场

uniapp应用市场

uniapp应用市场概述 Uniapp作为跨平台开发框架,支持将代码编译到iOS、Android、Web及各类小程序平台。其应用市场(插件市场)是开发者获取扩展插件、模板、组件的重要资源库,涵盖UI组…