当前位置:首页 > uni-app

uniapp事件介绍

2026-02-05 21:50:36uni-app

uniapp事件概述

在uniapp中,事件是组件间通信的重要机制,允许子组件向父组件传递数据或触发行为。事件通过v-on@指令绑定,支持原生DOM事件和自定义事件。

uniapp事件介绍

事件绑定语法

  • 原生DOM事件:直接绑定到DOM元素,如点击事件。
    <button @click="handleClick">点击</button>
  • 自定义事件:通过$emit触发,父组件监听。
    <!-- 子组件触发 -->
    <button @click="$emit('customEvent', data)">触发事件</button>
    <!-- 父组件监听 -->
    <child-component @customEvent="handleCustomEvent"></child-component>

事件修饰符

uniapp支持Vue的事件修饰符,简化事件处理逻辑:

uniapp事件介绍

  • .stop:阻止事件冒泡。
  • .prevent:阻止默认行为。
  • .capture:使用捕获模式。
  • .self:仅当事件从元素本身触发时回调。
  • .once:事件只触发一次。
    <button @click.stop="handleClick">阻止冒泡</button>

事件传参

通过$emit传递参数,父组件在方法中接收:

<!-- 子组件 -->
<button @click="$emit('submit', { id: 1, name: 'uniapp' })">提交</button>
<!-- 父组件 -->
<child-component @submit="handleSubmit"></child-component>
methods: {
  handleSubmit(data) {
    console.log(data); // { id: 1, name: 'uniapp' }
  }
}

跨组件事件通信

对于非父子组件通信,可使用uni.$emituni.$on全局事件机制:

// 发送事件  
uni.$emit('globalEvent', { message: '全局事件' });  
// 监听事件  
uni.$on('globalEvent', (data) => {  
  console.log(data.message); // '全局事件'  
});  

注意事项

  • 避免滥用全局事件,防止内存泄漏。组件销毁时需调用uni.$off移除监听。
  • 自定义事件名建议使用kebab-case(如custom-event),避免与原生事件冲突。
  • 小程序端部分原生事件(如inputtap)需使用特定语法,需参考平台文档。

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

相关文章

uniapp和vue有什么区别

uniapp和vue有什么区别

uniapp和vue的区别 1. 定位与用途 Vue:一个渐进式JavaScript框架,专注于构建用户界面,适用于开发单页应用(SPA)或复杂前端项目。 UniApp:基于Vue.js的跨…

uniapp多环境配置

uniapp多环境配置

多环境配置的必要性 在UniApp开发中,多环境配置能有效区分开发、测试、生产等不同环境的API地址、密钥等参数,避免手动修改代码导致的错误。 创建环境配置文件 在项目根目录下创建env.js或co…

uniapp斑马

uniapp斑马

uniapp 斑马相关问题解答 uniapp 斑马打印机连接与使用 uniapp 支持通过蓝牙或网络连接斑马打印机,需要借助原生插件或第三方 SDK。以下为常见方法: 蓝牙连接方式 安装 uni-…

精通uniapp

精通uniapp

掌握UniApp的基础知识 UniApp是一个基于Vue.js的跨平台开发框架,支持一次开发多端部署(如H5、小程序、App等)。核心概念包括Vue语法、组件化开发、条件编译(针对不同平台适配)以及U…

海康 uniapp

海康 uniapp

海康威视与UniApp集成方案 海康威视的硬件设备(如摄像头、NVR等)与UniApp结合,通常需要通过海康的开放平台API或SDK实现功能调用。以下是具体实现方法: 获取海康威视开放平台权限 注册…

uniapp 数据

uniapp 数据

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