持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第11天,点击查看活动详情
绑定数据
Mustache语法:使用{{}}将变量抱起来: 通过将数据写入data中 然后再wxml中写入{{}}中就能动态绑定
<view>{{要绑定的数据名称}}</view>
绑定时间
| 类型 | 绑定方式 | 事件描述 |
|---|---|---|
| tap | bindtap或bind:tap | 手指触摸后马上离开,类似于html中的click事件 |
| input | bindput或bind:input | 文本框的输入事件 |
| change | bindchange或bind:change | 状态改变时触发 |
事件对象的属性列表
触发回调函数时,会收到一个事件对象event
| 属性 | 类型 | 说明 |
|---|---|---|
| type | String | 事件类型 |
| timeStamp | interger | 页面打开到触发事件所经过的毫秒数 |
| target | Object | 触发事件的组件的一些属性值的集合 |
| currentTarget | Object | 当前组件的一些属性值的集合 |
| detail | Object | 额外的信息 |
| touches | Array | 触发事件,当前停留在屏幕中的触摸点信息的数组 |
| changedTouches | Array | 触发事件,当前变化的触摸点信息的数组 |
target与currentTarget的区别
因为点击事件是以冒泡的方式向外扩散的,所以也会出发到view的tap事件处理函数
此时,对于外层的view来说:
- e.target指向的是触发事件的源头组件,因此,e.target是内部的按钮组件
- e.currentTarget指向的是当前正在触发事件的那个组件,因此e.currentTarget是当前的view组件
bindtap 的语法个数
<button type="primary" binttap="btnBandTap">按钮</button>
btnBandTap(e){
console.log(e)
},
在事件处理函数中为data中的数据赋值
通过调用this.setData()
countChange(e){
console.log(e)
this.setData({
count : this.data.count+1
})
},
事件传参
小程序比较特殊,不能在绑定事件的同时为事件处理函数传递参数
<button type="primary" bindtap="btnHandler(123)"></button> //这样写是不对的
因为小程序会把整个bindtap绑定的值当作事件名称来处理,相当于调用了btnHandler(123)的事件处理函数. 所以我们在使用时应该只输入对应的参数。