当前位置:首页 > uni-app

uniapp $on

2026-03-04 20:43:13uni-app

在UniApp中,$on是用于监听全局事件的API,通常与uni.$emit配合使用实现跨页面通信。以下是具体用法和注意事项:

监听全局事件

使用uni.$on(eventName, callback)监听自定义事件。eventName为事件名称,callback是触发时的回调函数。例如:

// 在页面或组件中监听
uni.$on('updateData', (data) => {
  console.log('接收到数据:', data);
});

触发事件

通过uni.$emit(eventName, data)触发事件并传递数据:

// 在任何地方触发事件
uni.$emit('updateData', { message: 'Hello' });

移除监听

为避免内存泄漏,需在页面或组件销毁时移除监听:

uniapp $on

// 页面卸载时移除
onUnload() {
  uni.$off('updateData');
}

注意事项

  • 事件名需唯一,避免冲突。
  • $on通常用于跨页面通信,同一页面内优先考虑propsvuex
  • 多次调用$on会重复监听同一事件,需确保及时清理。

示例场景

// A页面触发事件
uni.$emit('loginSuccess', { userId: 123 });

// B页面监听
uni.$on('loginSuccess', (res) => {
  console.log('用户ID:', res.userId);
});

通过合理使用$on$emit,可实现灵活的跨组件或页面通信。

标签: uniappon
分享给朋友:

相关文章

uniapp使用npm

uniapp使用npm

uniapp中使用npm的方法 uniapp支持通过npm安装和管理第三方依赖包,以下是具体操作步骤: 安装Node.js环境 确保本地已安装Node.js(建议使用LTS版本),安装后会自动包含n…

uniapp实现支付功能

uniapp实现支付功能

支付功能实现概述 在UniApp中实现支付功能通常需要对接第三方支付平台(如微信支付、支付宝支付等)。以下是基于微信支付和支付宝支付的通用实现流程。 微信支付实现步骤 1. 配置支付权限 在微信开放…

uniapp实名认证

uniapp实名认证

uniapp实名认证实现方法 使用uniCloud实名认证插件 uniapp官方提供了uniCloud的实名认证插件,可快速集成到项目中。插件支持身份证识别、活体检测等功能,需在uniCloud控制台…

uniapp使用axios无法请求

uniapp使用axios无法请求

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

uniapp中如何使用iconfont

uniapp中如何使用iconfont

使用 Iconfont 在 Uniapp 中的步骤 下载 Iconfont 资源 访问 Iconfont 官网,选择需要的图标并添加到项目。下载时选择 Font class 格式,解压后会得到 .tt…

uniapp前端渲染

uniapp前端渲染

uniapp前端渲染的基本原理 uniapp基于Vue.js框架,采用了一套代码多端运行的机制。前端渲染主要通过Vue的虚拟DOM技术实现,在不同平台(H5、小程序、App等)上会编译为对应平台的渲染…