当前位置:首页 > 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教程

uniapp教程

uniapp 基础介绍 uniapp 是一个基于 Vue.js 的跨平台开发框架,支持一次开发,多端发布(如微信小程序、H5、App、快应用等)。其核心优势在于代码复用率高,学习成本低,适合快速构建多…

uniapp 推送

uniapp 推送

uniapp 推送实现方法 uniapp 推送功能可以通过多种方式实现,主要包括使用第三方推送服务、原生插件或云服务。以下是几种常见的实现方案: 使用 UniPush 服务 UniPush 是…

jquery事件

jquery事件

jQuery 事件基础 jQuery 提供了一套简化的事件处理机制,允许开发者通过简洁的语法绑定、触发和管理事件。核心方法包括 on()、off()、trigger() 等,支持常见事件(如点击、悬停…

uniapp开发电视应用

uniapp开发电视应用

开发环境准备 确保已安装HBuilderX最新版本,这是uniapp官方推荐的开发工具。安装Node.js环境,用于依赖管理和打包构建。准备Android Studio或Xcode用于调试和打包TV应…

uniapp前端页面

uniapp前端页面

Uniapp 前端页面开发指南 Uniapp 是一个基于 Vue.js 的跨平台开发框架,支持一次开发,多端部署(H5、小程序、App等)。以下是开发 Uniapp 前端页面的关键方法和注意事项。…

uniapp面试问啥

uniapp面试问啥

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