【uniapp】 的事件处理详解
创始人
2024-05-30 14:22:27
0

UniApp 是一个跨平台的开发框架,支持多种前端框架(Vue、React、Angular 等),并能打包成多种运行平台(H5、小程序、App 等)。在 UniApp 中,事件处理非常重要,通过事件处理可以实现用户与应用程序之间的交互。下面是 UniApp 中常用的事件处理方式:


1. 绑定事件

在模板中可以通过 @ 符号绑定事件,例如:

这里绑定了一个 click 事件,并且绑定的函数是 handleClick。

2. 事件修饰符

事件修饰符是指在绑定事件时使用的一些特殊符号,用于修改事件的行为。常见的事件修饰符包括:

  • prevent:阻止默认行为
  • stop:阻止事件冒泡
  • capture:使用事件捕获模式
  • self:只有当事件是从事件源本身触发时才触发回调函数
  • once:只触发一次回调函数
  • passive:提高页面滚动的流畅度

例如:








.prevent 和 .stop 是两种不同的事件修饰符,虽然它们有一些相似之处,但是在事件处理中有不同的作用。1 .prevent 用于阻止事件的默认行为,例如阻止  标签的默认跳转、阻止表单的默认提交等。
如果一个事件被 .prevent 修饰符修饰了,则在事件触发时,不会执行事件的默认行为,而只会执行`绑定的事件处理函数`。2 .stop 用于阻止事件的冒泡传播,事件冒泡是指当一个元素触发事件时,该事件会向父级元素传播。
如果一个事件被 .stop 修饰符修饰了,则在事件触发时,不会向上层元素传播该事件,而只会在当前元素内部进行处理。因此,.prevent 和 .stop 的作用是不同的,但是它们都能够阻止事件的默认行为。
.prevent 用于阻止元素的默认行为,.stop 用于阻止事件的冒泡传播。
具体示例:当一个链接被点击时,会触发 click 事件。如果链接没有设置 href 属性,则默认的行为是不进行跳转,但如果设置了 href 属性,则会跳转到 href 指定的页面。
在这种情况下,可以使用 .prevent 和 .stop 修饰符来阻止链接的默认跳转行为和冒泡传播。我们给链接设置了 href 属性,并绑定了 click 事件和 handleLinkClick 方法。
同时,我们在链接上使用了 .prevent 和 .stop 修饰符来阻止默认的跳转行为和冒泡传播。

在点击链接时,控制台会输出 【内部事件————链接被点击了】
链接被点击了,而不会进行跳转。
同时,由于使用了 .stop 修饰符,事件也不会向上层元素冒泡传播,因此点击链接时不会触发外部事件 handleDivClick 方法。1、如果我们把 .prevent 修饰符去掉,点击链接时会进行跳转。说明默认行为存在,但是被阻止了。2、如果把 .stop 修饰符去掉,点击链接时会触发 handleDivClick 方法。说明点击事件冒泡了。这说明了 .prevent 和 .stop 修饰符的区别,.prevent 可以阻止默认行为,.stop 可以阻止冒泡传播。默认行为指的是元素在触发某些事件时,浏览器会执行的预设行为。
例如,当用户点击一个链接时,浏览器默认会跳转到该链接所指定的 URL。当用户提交一个表单时,浏览器默认会向服务器发送表单数据并刷新页面。
这些行为是浏览器内置的,可以通过 JavaScript 代码来阻止或修改。

3. 内置事件

在 UniApp 中,还有一些内置事件可以使用。这些事件是指在特定情况下自动触发的事件,例如:

  • onLoad:页面加载完成时触发
  • onReady:页面初次渲染完成时触发
  • onShow:页面展示时触发
  • onHide:页面隐藏时触发
  • onUnload:页面卸载时触发

这些事件可以在页面或组件中使用,例如:

export default {onLoad() {console.log('页面加载完成');},onReady() {console.log('页面初次渲染完成');},onShow() {console.log('页面展示');},onHide() {console.log('页面隐藏');},onUnload() {console.log('页面卸载');}
}

4. 自定义事件

在 UniApp 中,还可以通过 uni.emit和uni.emit 和 uni.emit和uni.on 方法来实现自定义事件的处理。例如:

// 发送自定义事件
uni.$emit('myEvent', {data: '自定义事件参数'});// 监听自定义事件
uni.$on('myEvent', (data) => {console.log('接收到自定义事件', data);
});
这里通过 uni.$emit 发送了一个名为 myEvent 的自定义事件,
并传递了一个参数 {data: '自定义事件参数'}。在需要监听该事件的地方,
可以使用 uni.$on 方法来监听该事件,并在回调函数中处理事件。

5. 事件对象

在事件处理函数中,可以通过 $event 参数来获取事件对象,事件对象包含了事件的一些信息,例如:

type:事件类型
target:事件源
currentTarget:当前组件
detail:自定义数据
例如:

methods: {handleClick($event) {console.log('事件类型', $event.type);console.log('事件源', $event.target);console.log('当前组件', $event.currentTarget);console.log('自定义数据', $event.detail);}
}以上就是 UniApp 中常用的事件处理方式,包括绑定事件、事件修饰符、内置事件、自定义事件和事件对象。
掌握这些知识,可以更加灵活地处理事件,实现丰富的用户交互效果。

相关内容

热门资讯

年会精彩致辞 年会精彩致辞(通用7篇)  在学习、工作乃至生活中,大家对致辞都不陌生吧,致辞具有很强的实用性和针对...
少儿活动主持人主持词 少儿活动主持人主持词  主持词需要富有情感,充满热情,才能有效地吸引到观众。我们眼下的社会,主持人参...
晚会主持词开场白 【必备】晚会主持词开场白(通用13篇)  主持词已成为各种演出活动和集会中不可或缺的一部分。在人们越...
六一儿童节鼓励致辞 六一儿童节鼓励致辞(通用20篇)  无论是身处学校还是步入社会,说到致辞,大家肯定都不陌生吧,致辞具...
幼儿园元旦联欢会主持词 2014年幼儿园元旦联欢会主持词2014年幼儿园元旦联欢会主持词1师:尊敬的各位老师幼:亲爱的小朋友...
同学会联欢会主持词 同学会联欢会主持词  借鉴诗词和散文诗是主持词的一种写作手法。在一步步向前发展的社会中,越来越多的活...
搞笑脱口秀台词脱口秀台词 搞笑脱口秀台词脱口秀台词1100字校园脱口秀台词每天,当我的双脚迈入合肥七中的大门,强相互作用会把我...
学生会换届大会主持词 学生会换届大会主持词  主持词的内容  主持词一般由开场白、中间部分与结束语组成。  开场白 演出或...
教研活动公开课主持稿   教研活动公开课主持稿  篇一:数学教研活动主持词  各位领导、各位老师,大家好!  在这样一个春...
《花木兰》感人台词 《花木兰》感人台词  壹 孝,替父从军父女情  感人段落:军令如山,花弧爱国心切,无奈年老气衰,百病...
红歌赛主持词 红歌赛主持词  由主持人于节目进行过程中串联节目的串联词。如今的各种演出活动和集会中,主持人往往成了...
联欢晚会主持词 联欢晚会主持词3篇  主持词可以采用和历史文化有关的表述方法去写作以提升活动的文化内涵。在如今这个时...
金榜题名主持词 金榜题名主持词(精选23篇)  主持词要根据活动对象的不同去设置不同的主持词。随着社会一步步向前发展...
光荣退休领导致辞 光荣退休领导致辞范文(通用5篇)  在学习、工作或生活中,要用到致辞的情况还是蛮多的,致辞是指在仪式...
大学迎新晚会主持词 大学迎新晚会主持词  迎新,全称迎接新春,又叫迎接新年。迎新是中国的传统节日形式。或者欢迎、迎接新来...
教师节校长简短致辞 教师节校长简短致辞(通用10篇)  在日常学习、工作抑或是生活中,大家或多或少都用到过致辞吧,在各种...
张国荣经典台词 关于张国荣经典台词  1、哭,我为了感动谁,笑,又为了碰着谁。  ——《路过蜻蜓》  2、虽然我很喜...
新郎婚礼简短致辞 新郎婚礼简短致辞(精选10篇)  在平平淡淡的学习、工作、生活中,大家都经常接触到致辞吧,致辞是指在...
美剧经典台词截图 美剧经典台词截图  在社会发展不断提速的今天,用到台词的地方越来越多,台词是一种特殊的文学语言,必须...
女朋友撒娇的经典台词 女朋友撒娇的经典台词  1、这种被朋友的情况让我很失落,因为我喜欢他。  2、“她就是躲着我我该怎么...