微信小程序-(四)WXML模板语法-事件绑定
本文最后更新于:March 27, 2022 pm
微信小程序,小程序的一种,英文名Wechat Mini Program,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。也体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题。应用将无处不在,随时可用,但又无需安装卸载。对于开发者而言,微信小程序开发门槛相对较低,难度不及APP,能够满足简单的基础应用,适合生活服务类线下商铺以及非刚需低频应用的转换。
目录
数据绑定
基本原则
类似Vue。
在data中定义数据。
在WXML中使用数据。
- 定义数据
在页面对应的 .js
文件中,把数据定义到 data 对象中即可。
1 |
|
- 使用数据
把 data 中的数据绑定到页面中,使用 Mustache 语法(双大括号)将变量包起来即可。(类似Vue)
1 |
|
其中双大括号中可以使用三目运算符。
动态绑定属性
这里和Vue中就不同了,这里可以直接使用。
1 |
|
1 |
|
随机生成数
1 |
|
事件绑定
小程序中常用事件
类型 | 绑定方式 | 事件描述 |
---|---|---|
tap | bindtap 或 bind:tap | 手指触摸后马上离开,类似于HTML中的click时间 |
input | bindinput 或 bind:input | 文本框的输入事件 |
change | bindchange 或 bind:change | 状态改变时触发 |
事件对象的属性列表
当事件回调触发的时候,会受到一个事件对象 event,它的详细属性有:
属性 | 类型 | 说明 |
---|---|---|
type | String | 事件类型 |
timeStamp | Integet | 页面打开到触发事件所经过的毫秒数 |
target | Object | 触发事件的组件的一些属性值集合 |
currentTarget | Object | 当前组件的一些属性值集合 |
detail | Object | 额外的信息 |
touches | Array | 触摸事件,当前停留在屏幕中的触摸点信息的数组 |
changedTouches | Array | 触摸事件,当前变化的触摸点信息的数组 |
target 和 currentTarget 的区别
- target:是触发该事件的源头组件。即是触发什么导致发生的事件。
- currentTarget:是当前事件所绑定的组件。
示例:
1 |
|
点击内部按钮时,点击事件以冒泡的方式向外扩散,也会触发外层的 tap 事件处理函数。此时,对于外层的 view 来说:
- e.target:指向的是触发事件的源头组件(即按钮组件)。
- e.currentTarget:指向的是当前正在触发事件的那个组件(即当前的view组件)。
bindtap使用语法格式
在小程序中,不存在鼠标点击事件(onclick),而是通过 tap 事件来相应用户的触摸行为。
- 为组件绑定 tap 触摸事件
1 |
|
- 在页面对应的
.js
文件中定义对应的事件处理函数,事件参数通过形参 event(简写为e)来接受。
1 |
|
在处理函数中为data中的数据赋值
通过调用 this.setData(dataObject) 方法,可以给页面 data 中的数据重新赋值。
1 |
|
1 |
|
事件传参
小程序中的事件传参比较特殊,不能在绑定事件的同时为事件处理函数传递参数。
可以为组件提供 data-*
自定义属性传参,其中星号(*)代表的是参数的名字,例如:
1 |
|
最后:
- inf 会被解析为参数的名字
- 数值 3 会被解析为参数的值。值也可以设置为 data 中的数据。
获取参数
在事件处理函数中,通过 event.target.dataset.参数名称
获取具体参数的值。
1 |
|
bindinput使用语法格式
通过 input 事件来响应文本框的输入事件。
- 绑定输入事件
1 |
|
- 定义处理函数
1 |
|
实现文本框与data中的数据同步
1 |
|
1 |
|
本文作者: 墨水记忆
本文链接: https://tothefor.com/DragonOne/6dd6a6b1.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!