### [小程序开发中什么是事件?](https://www.prosaas.cn/article/16715) **Published:** 2020-04-21T01:16:32 **Author:** 5201314 **Excerpt:** 在微信小程序开发中什么是事件?从事件的定义解释,事件是视图层到逻辑层的通讯方式。事件可以将用户的行为反馈到逻辑… ![](https://img.php.cn/upload/article/000/000/024/5e9e49612b04b628.jpg) 在微信小程序开发中什么是事件?从事件的定义解释,事件是视图层到逻辑层的通讯方式。事件可以将用户的行为反馈到逻辑层进行处理,同时绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数。除此之外事件对象可以携带额外信息,如 id, dataset, touches。 ![](https://img.php.cn/upload/image/230/290/309/1587431452767275.png) 由于微信小程序框架采用逻辑层与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 推荐:《小程序开发教程》 以上就是小程序开发中什么是事件?的详细内容,更多请关注知企PROSAAS其它相关文章! **Categories:** 后端开发 ---