小程序开发中什么是事件?

作者 : OO资源中心 发布时间: 2020-05-10 文章热度:392 共1303个字,阅读需4分钟。 本文内容有更新 字体:

小程序开发中什么是事件?

在微信小程序开发中什么是事件?从事件的定义解释,事件是视图层到逻辑层的通讯方式。事件可以将用户的行为反馈到逻辑层进行处理,同时绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数。除此之外事件对象可以携带额外信息,如 id, dataset, touches。

小程序开发中什么是事件?

由于微信小程序框架采用逻辑层与UI层分析的设计方式,这种设计方式需要解决两个问题:视图层响应逻辑层逻辑和数据的变化,视图层将用户的操作反馈到逻辑层。微信定义了一些语法和规则来帮助开发者连接视图层和逻辑层。通过数据绑定可以解决前一个问题,而第二个问题就需要用事件来解决。

事件绑定

通过事件绑定来完成对用户操作的响应,比如要处理view标签的tap事件,在标签属性中添加bindtap = 'tapName', 然后在.js中添加tapName函数

//wxml
Click me!
//.js
Page({
tapName:function(event) {
console.log(event)
}
})

event对象包含一些关于事件的数据:

target:触发事件的组件

currentTarget:当前组件

type:事件类型

timeStamp:时间戳(页面打开到触发事件所经过的毫秒数)

touches:包含触摸点的数组(多点触控)

changedTouches :发生改变的触摸点的数组(多点触控)

detail:额外的自定义信息

冒泡事件和非冒泡事件

为什么会有target和currentTarget之分呢,这是由于事件分为两类,冒泡事件和非冒泡事件

冒泡事件:当一个组件上的事件被触发后,该事件会向父节点传递。

非冒泡事件:当一个组件上的事件被触发后,该事件不会向父节点传递。

其中tap事件是属于冒泡事件(这也是为什么上面例子中的event会包含currentTarget)。

为什么需要冒泡事件

有了冒泡事件,就可以更加方便的实现一些功能。

比如程序有一个视图,包含用户头像和姓名,当用户点击头像或姓名时,进入用户详情页面。如果没有冒泡事件,就需要处理头像和姓名的点击事件,而现在只需在外层包裹一个组件,并处理该组件的事件即可。

阻止事件冒泡

在有些情况下可能会希望阻止事件的冒泡行为,可以使用catch事件绑定,如catchtap,就可以阻止事件的冒泡行为。

可以通过下面的代码示例来加深对冒泡事件的理解

//.wxml
我是父亲节点
我是儿子节点
我是孙子节点

//.js
Page({
handleTapOutter:function(event) {
console.log(父亲节点被点击)
},
handleTapMiddle:function(event) {
console.log(儿子节点被点击)
},
handleInner:function(event) {
console.log(孙子节点被点击)
},
})

总结下来事件就是指发生了一些事情,通常是用户进行了一些操作,如点击某个按钮或在手机屏幕上滑动了手指。当事件发生时,框架会调用事件处理函数(如果有的话),这样就可以实现对用户操作的响应。

本文转载自:http://zixun.jisuapp.cn/xcxkfjc/3059.html

推荐:《》

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
下载资源需要解压密码,解压密码是什么?
如下载的资源需要解压密码,请查看下载页右侧查找解压密码;
如没有解压密码请尝试默认解压密码:www.oo.ink 或者 oo.ink
或者联系我们获取解压密码!
1、本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2、分享目的仅供大家学习和交流,请不要用于商业用途!
3、本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
4、如有链接无法下载、失效或广告,请联系管理员处理!
5、本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!

OO.INK资源网 » 小程序开发中什么是事件?
+已在风雨中度过
为兴趣而改变,为梦想而努力!
+已坚持更新
时时更新,确保最新~

开通SVIP,畅享全站资源下载~

立即了解