当前位置:首页 > 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指南

开发环境搭建 下载HBuilderX作为官方推荐的开发工具,支持Windows和Mac系统。安装后创建uni-app项目,选择模板(如默认模板、Hello Uni-app等)。确保Node.js版本在…

uniapp 目录

uniapp 目录

uniapp 目录结构 uniapp 的目录结构遵循 Vue.js 项目的规范,同时包含一些特有的文件和目录。以下是典型的 uniapp 项目目录结构及其说明: project-name/ ├──…

uniapp 壁纸

uniapp 壁纸

使用 Uniapp 开发壁纸应用的方法 实现壁纸展示与切换功能 在 Uniapp 中,可通过 swiper 组件实现壁纸轮播展示。结合 image 组件加载本地或网络壁纸资源,动态绑定 src 属性实…

重构uniapp

重构uniapp

重构 Uniapp 项目的关键方法 代码结构优化 将页面、组件、静态资源按功能模块划分,避免全部堆放在根目录。建议采用以下结构: src/ ├── components/ // 通用组件…

uniapp审批

uniapp审批

uniapp审批流程实现 在uniapp中实现审批功能,通常需要结合前端界面和后端逻辑。以下是几种常见的实现方式: 前端界面设计 使用uniapp的组件和API构建审批界面,包括表单提交、审批列表展…

uniapp 3.0

uniapp 3.0

uniapp 3.0 核心特性 uniapp 3.0 是 DCloud 推出的跨端开发框架升级版本,支持一套代码编译到 iOS、Android、Web 及各类小程序平台。以下为关键特性与使用要点:…