点击按钮
当前位置:首页 > uni-app

uniapp监听事件

2026-03-05 11:39:07uni-app

uniapp监听事件的常见方法

通过@绑定事件 在模板中直接使用@符号绑定事件,例如点击事件:

<button @click="handleClick">点击按钮</button>

对应的methods中定义方法:

methods: {
  handleClick() {
    console.log('按钮被点击');
  }
}

使用uni.$on全局监听 适用于跨页面或组件通信,在发送方使用uni.$emit

uni.$emit('eventName', {data: '传递的数据'});

在接收方使用uni.$on监听:

uni.$on('eventName', (data) => {
  console.log('接收到的数据:', data);
});

使用uni.$once单次监听uni.$on类似,但只触发一次:

uni.$once('eventName', (data) => {
  console.log('仅触发一次的数据:', data);
});

组件间通信 父子组件间通过props$emit: 子组件触发事件:

this.$emit('customEvent', {value: '数据'});

父组件监听:

<child-component @customEvent="handleCustomEvent"></child-component>

页面生命周期监听 在页面生命周期中监听事件,例如onLoad

onLoad() {
  uni.$on('pageEvent', this.handlePageEvent);
},
onUnload() {
  uni.$off('pageEvent', this.handlePageEvent);
}

注意事项

  • 使用uni.$on后,务必在onUnload或合适时机用uni.$off解除绑定,避免内存泄漏。
  • 事件名称建议使用常量管理,避免拼写错误。
  • 跨页面通信时,注意页面栈生命周期,可能需延迟监听。

监听原生事件示例

监听返回按钮事件:

onBackPress() {
  console.log('返回按钮被按下');
  return true; // 阻止默认返回行为
}

监听网络状态变化:

uniapp监听事件

onLoad() {
  uni.onNetworkStatusChange((res) => {
    console.log('网络状态变化:', res);
  });
}

标签: 事件uniapp
分享给朋友:

相关文章

uniapp应用市场

uniapp应用市场

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

uniapp实现懒加载

uniapp实现懒加载

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

uniapp设置title

uniapp设置title

设置页面标题的方法 在UniApp中设置页面标题可以通过以下几种方式实现,适用于不同场景和需求。 通过pages.json配置 在pages.json文件中,可以为每个页面单独配置导航栏标题。找到对…

uniapp 搜索

uniapp 搜索

uniapp 搜索功能实现方法 全局搜索组件集成 在pages.json中配置全局搜索栏,适用于所有页面顶部显示搜索框。示例代码: "globalStyle": { "navigationBa…

uniapp 数据

uniapp 数据

uniapp 数据管理方法 本地存储 使用 uni.setStorageSync 和 uni.getStorageSync 进行本地数据持久化存储。适合保存用户偏好设置或小型数据。 // 存储数…

uniapp与vr

uniapp与vr

Uniapp与VR的结合方式 Uniapp作为跨平台开发框架,本身不直接支持VR开发,但可以通过以下方式实现与VR技术的结合: 使用WebXR API Uniapp可以调用WebXR API在H5端…