当前位置:首页 > uni-app

uniapp $on

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

uniapp $on 方法详解

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

uniapp $on

基本语法

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

使用场景

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

示例代码

监听事件

uniapp $on

// 在页面或组件的生命周期中监听
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 端。
  • 小程序端需注意部分平台的事件队列差异。

标签: uniappon
分享给朋友:

相关文章

uniapp开发

uniapp开发

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

uniapp消息推送

uniapp消息推送

uniapp消息推送实现方法 uniapp支持多种消息推送方式,包括uniPush、个推、极光推送等。以下为常见实现方案: uniPush(官方推荐) uniapp官方提供的推送服务,基于DClou…

uniapp和vue有什么区别

uniapp和vue有什么区别

uniapp和vue的区别 1. 定位与用途 Vue:一个渐进式JavaScript框架,专注于构建用户界面,适用于开发单页应用(SPA)或复杂前端项目。 UniApp:基于Vue.js的…

uniapp 消息推送

uniapp 消息推送

uniapp 消息推送实现方法 使用uniPush服务 uniapp官方提供了uniPush服务,支持iOS、Android及小程序平台的消息推送。需要在manifest.json中配置推送模块,并按…

uniapp 极光推送

uniapp 极光推送

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

uniapp应用市场

uniapp应用市场

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