当前位置:首页 > 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树形选择实现方法 使用uni-data-checkbox组件 uniapp内置的uni-data-checkbox组件支持树形结构选择,适用于多级分类场景。配置时需要将数据格式化为树形结构…

uniapp安装uview

uniapp安装uview

安装uView到UniApp项目 方法一:通过npm安装(推荐) 确保项目已初始化npm,在项目根目录执行以下命令: npm install uview-ui 在main.js文件中引入并注册…

uniapp面试问啥

uniapp面试问啥

技术基础类问题 UniApp框架特性 跨端实现原理及条件编译的使用场景 如何理解"一次开发,多端运行"的优缺点 rpx与vw/vh单位的适配差异 Vue相关 生命周期在Un…

uniapp切片

uniapp切片

uniapp 切片实现方法 在 uniapp 中实现切片功能通常指的是对图片或数据进行分割处理。以下是几种常见的切片实现方式: 图片切片展示 通过 CSS 和 JavaScript 实现图片的网格化…

uniapp实现懒加载

uniapp实现懒加载

uniapp实现懒加载的方法 在uniapp中实现懒加载可以通过多种方式,以下是几种常见的方法: 使用uni.lazyLoad组件 uniapp提供了内置的懒加载组件,适用于图片等资源的懒加载。在…

uniapp使用axios无法请求

uniapp使用axios无法请求

uniapp中使用axios请求问题解决方案 在uniapp中使用axios可能会遇到跨域、请求失败或兼容性问题。以下是常见原因及解决方法: 检查axios安装与引入 确保已正确安装axios:…