当前位置:首页 > uni-app

uniapp事件介绍

2026-03-04 23:29:08uni-app

uniapp 事件基础概念

uniapp 中的事件系统基于 Vue.js,允许开发者通过事件实现组件间的通信或响应用户交互。事件分为原生事件和自定义事件,支持冒泡机制和事件修饰符。

事件绑定语法

在模板中通过 @v-on: 绑定事件:

<button @click="handleClick">点击触发</button>
<!-- 或 -->
<button v-on:click="handleClick">点击触发</button>

常用事件类型

  • 触摸事件@touchstart, @touchmove, @touchend
  • 点击事件@click, @longpress(长按)
  • 表单事件@input, @change, @submit
  • 生命周期事件:如 @load(图片加载完成)

事件修饰符

uniapp 支持 Vue 的事件修饰符:

  • .stop:阻止事件冒泡
  • .prevent:阻止默认行为
  • .capture:使用捕获模式
  • .self:仅当事件源是自身时触发
  • .once:只触发一次

示例:

<view @click.stop="handleClick">阻止冒泡</view>
<form @submit.prevent="handleSubmit">阻止表单默认提交</form>

自定义事件

父子组件间可通过自定义事件通信:

  • 子组件触发this.$emit('eventName', data)
  • 父组件监听<child-component @eventName="handler"></child-component>

事件对象

事件处理函数默认接收 event 对象,包含以下常用属性:

  • type:事件类型(如 "click"
  • target:触发事件的 DOM 元素
  • currentTarget:当前绑定的 DOM 元素
  • detail:自定义数据(如 $emit 传递的参数)

跨平台注意事项

  • 部分事件在不同平台表现可能不同(如 longpress 在 H5 端需手动实现)。
  • 使用 uni.$onuni.$emit 可实现全局事件总线,适用于非父子组件通信。

示例代码

// 页面逻辑
methods: {
  handleClick(event) {
    console.log('事件类型:', event.type);
    uni.showToast({ title: '点击事件触发' });
  }
}
<!-- 组件通信示例 -->
<child-component @customEvent="handleCustom"></child-component>

通过合理利用事件系统,可以高效实现 uniapp 应用的交互逻辑。

uniapp事件介绍

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

相关文章

uniapp实名认证

uniapp实名认证

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

uniapp打包

uniapp打包

uniapp打包步骤 H5平台打包 在项目根目录运行以下命令生成H5资源文件: npm run build:h5 打包完成后,文件默认输出到/dist/build/h5目录,可直接部署到Web服务…

uniapp关闭侧滑

uniapp关闭侧滑

禁用全局侧滑返回功能 在pages.json中配置全局禁止侧滑返回: { "globalStyle": { "popGesture": "none" } } 禁用单个页面侧滑…

uniapp改变checkbox选中状态

uniapp改变checkbox选中状态

修改 checkbox 选中状态的方法 在 uniapp 中修改 checkbox 的选中状态可以通过以下几种方式实现: 绑定 v-model 控制状态 通过数据绑定方式控制 checkbox…

uniapp 如何封装request请求

uniapp 如何封装request请求

封装 request 请求的核心思路 在 UniApp 中封装请求通常基于 uni.request,通过统一处理 URL、参数、header 和拦截逻辑提升代码复用性。以下是一个完整封装方案: 创建…

base64转换方法uniapp

base64转换方法uniapp

Base64 转换方法(UniApp) 在 UniApp 中实现 Base64 编码和解码,可以通过原生 JavaScript 的 btoa 和 atob 方法,或使用第三方库如 base64-js。…