当前位置:首页 > 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 的跨平台开发框架,支持一次开发,多端发布(如微信小程序、H5、App 等)。以下是关于 Uniapp 前端项目的关键信息: 环…

uniapp改变checkbox选中状态

uniapp改变checkbox选中状态

修改 checkbox 选中状态的方法 在 uniapp 中修改 checkbox 的选中状态可以通过以下几种方式实现: 绑定 v-model 控制状态 通过数据绑定方式控制 checkbox 的…

uniapp 如何封装request请求

uniapp 如何封装request请求

封装 request 请求的核心思路 在 UniApp 中封装请求通常基于 uni.request,通过统一处理 URL、参数、header 和拦截逻辑提升代码复用性。以下是一个完整封装方案: 创建…

uniapp 美颜

uniapp 美颜

uniapp 美颜实现方法 在uniapp中实现美颜功能可以通过多种方式完成,以下是一些常见的方法: 使用原生插件 uniapp支持调用原生插件实现美颜效果,适用于对性能要求较高的场景。需要开发原生…

uniapp悬浮

uniapp悬浮

实现悬浮效果的方法 在UniApp中实现悬浮效果可以通过CSS的position: fixed或position: sticky属性结合动态样式控制来实现。以下是具体实现方式: 使用CSS固…

uniapp 画板

uniapp 画板

uniapp 实现画板功能的方法 在 uniapp 中实现画板功能,可以通过 canvas 组件结合触摸事件来完成。以下是一个基本的实现方案: 基本画板实现 在 template 中添加 canva…