宝哥软件园

程序员开发实用系列《五》视图层WXML:事件

编辑:宝哥软件园 来源:互联网 时间:2021-12-18

本文来自微信官方账号:程序员实战。上一篇文章解释了数据绑定、模板、逻辑等。它的主要功能是在视图中显示数据以及如何显示数据。但是仅仅展示是不够的。我们需要互动。例如,一个HTML页面可以显示文字和图片,但也需要一些交互,比如链接和按钮。

互动其实是一个事件。例如,在HTML中按钮的onClick是单击时触发的动作,以及开发人员相应的业务逻辑处理。

一、事件小案例:bindtap

它是从事件层到逻辑层的通信模式。将用户的行为反馈到逻辑层进行处理。一般绑定到组件,触发时执行处理函数,可以携带参数。

做一个按钮实现页面跳转。

index.wxml:

Button bindtap='toEvent '视图层WXML: event /buttonindex.js:

ToEvent :函数(){//跳转到event . wxml page wx . navigatteto({ URL : '/pages/wxml/event ' })}

效果动画

程序员开发实战系列《五》视图层WXML:事件(图1)

二.事件分类:冒泡和非冒泡事件:

当组件上的事件被触发时,该事件被传递给父节点。非冒泡事件:

当组件上的事件被触发时,该事件不会被传递到父节点。

以下是冒泡事件,其他组件事件是没有特殊声明的非冒泡事件。

键入触发事件touch开始手指触摸动作开始触摸移动手指触摸,然后移动触摸取消手指触摸动作被中断,例如来电提醒,弹出窗口触摸结束手指触摸动作,轻按手指触摸,然后立即离开longtap手指触摸,超过350毫秒后离开例如:

程序员开发实战系列《五》视图层WXML:事件(图2)

事件以绑定或捕获开始。

绑定事件绑定不会阻止冒泡事件向上冒泡,例如bindtap。

Catch事件绑定可以防止冒泡事件向上冒泡,例如catchtap。

HandleTap2是一个catchtap,因此:

单击内部视图将连续触发手柄3和手柄2。

单击中间视图只会触发handleTap2。

单击外部视图将触发手柄1。

在调试日志中查看

程序员开发实战系列《五》视图层WXML:事件(图3)

您可以看到事件执行的日志和事件对象。

程序员开发实战系列《五》视图层WXML:事件(图4)

三.事件对象

除非另外指定,否则当组件触发事件时,绑定到该事件的逻辑层的处理程序将接收事件对象。(见上文,事件对象)

BaseEventtypeString事件类型timeStampInteger事件生成时间戳触发事件的组件的某些属性值currentTargetObject当前组件的某些属性值CustomEvent自定义事件自定义事件(从BaseEvent继承)TargetObject额外字母TouchEvent触摸事件(从Baseevent继承)touch当前停留在屏幕上的触摸点信息数组changedTouchesArray数组当前正在更改的触摸点信息数组有关事件的详细信息,请参考官方文档。

和当前目标

而currenttarget可以参考上面的例子。当您单击内部视图时,手柄3接收的事件对象目标和当前目标都是内部的,而手柄2接收的事件对象目标是内部的,当前目标是中间的。

currentTarget中的dataset属性可以定义组件中的数据,这些数据将通过事件传递给SERVICE。

写作方法:以data-开头,多个单词用连字符-链接,所有大写字母自动转换为小写,连字符转换为驼峰。

例如:

data-alpha-beta=' 1 ' data-Alpha=' 2 '

程序员开发实战系列《五》视图层WXML:事件(图5)

触摸是触摸对象的数组。

请参考接口文档。

更多资讯
游戏推荐
更多+