??把data中的数据绑定到页面中渲染,使用Mustache语法(双大括号)将变量包起来即可。语法格式为:
<view>{{要绑定的数据名称}}</view>
e.g.
data: {
info:'hello world!'
// 渲染
},
<view>{{info}}</view>
生成随机数
页面的数据如下:
data: {
randomNum1: Math.random() * 10
},
页面的结构如下:
<view>{{randomNum1 >=5 ? '数字大于或等于5' : '数字小于5'}}</view>
页面的数据如下:
data: {
randomNum2: Math.random().toFixed(2),
},
页面的结构如下:
<view>{{randomNum2 * 100}}</view>
??事件:是渲染层到逻辑层的通讯方式。通过事件可以将用户在渲染层产生的行为,反馈到逻辑层进行业务的处理。
??target是出发该事件的源头文件,而currentTarget则是当前事件所绑定的组件。
??点击内部的按钮时,点击事件以冒泡的方式向外扩散,也会触发外层view的tap事件处理函数。
??此时,对于外层的view来说:
??在小程序中,不存在HTML中的onclick鼠标点击事件,而是通过tap事件来响应用户的触摸行为。
<button type="primary" bindtap="tbnTapHandler">按钮</button>
?定义按钮的事件处理函数:
tbnTapHandler(e){
console.log(e)
},
?点击“按钮”,控制台会打印下列
??通过调用this.setData(dataObject)方法,可以给页面data中的数据重新赋值。
<button type="primary" bindtap="CountChange">+1</button>
?+1按钮的点击事件处理函数:
//+1按钮的点击事件处理函数
CountChange(){
console.log('Ok')
},
?点击"+1"的按钮后,控制台打印Ok。
??小程序中的事件传参比较特殊,不能在绑定事件的同时为事件处理函数传递参数。
??例如下图:下面的代码将不能正常工作:
??因为小程序会把bindtap属性值,统一当作事件名称来处理,相当于要调用一个名称为btnHandler(123)的事件处理函数。
??在小程序中,通过input事件来响应文本框的输入事件。
??通过bindinput,可以为文本框绑定输入事件:
<input bindinput="inputHandler"><input>
?在页面的.js文件中定义事件处理函数:
inputHandler(e){
//e.detail.value是变化过后,文本框最新的值
console.log(e.detail.value)
}
实现步骤:
定义数据:
渲染结构:
美化样式:
绑定input事件处理函数:
结果如下: