Page(Object)函数用来注册一个页面
1.data
页面初始化数据。是页面第一次渲染使用的初始数据。data将会以json字符串的形式由逻辑层传至渲染层,因此data中的数据必须是可以转成JSON的类型:字符串、数字、布尔值、对象、数组。
2.onLoad
生命周期回调,监听页面加载。
3.onShow
生命周期回调,监听页面显示。
4.onReady
生命周期回调,监听页面初始渲染完成。
5.onHide
生命周期回调,监听页面隐藏。
6.onUnload
生命周期回调,监听页面卸载。
7.onPullDownRefresh
监听用户下拉动作。
8.onReachBottom
页面上拉触底事件的处理函数。
9.onShareAppMessage
用户点击右上角转发。
10.onPageScroll
页面滚动触发事件的处理函数。
11.onTabItemTap
当前是tab页时,点击tab时触发。
Object内容在加载时会进行一次深拷贝,需要考虑数据大小到页面加载的开销。
WeiXin Markup Language
1.数据绑定
使用Mustache语法(双大括号)将变量包起来。可以作用于:
(1)内容
{{ message }}
Page({
data: {
message: 'Hello MINA!'
}
})
(2)组件属性
Page({
data: {
id: 0
}
})
(3)控制属性
Page({
data: {
condition: true
}
})
(4)关键字
true:boolean 类型的 true,代表真值。
false: boolean 类型的 false,代表假值。
特别注意:不要直接写 checked="false",其计算结果是一个字符串,转成 boolean 类型后代表真值。
(5)运算
Hidden
{{a + b}} + {{c}} + d
Page({
data: {
a: 1,
b: 2,
c: 3
}
})
{{"hello" + name}}
{{object.key}} {{array[0]}}
Page({
data: {
object: {
key: 'Hello '
},
array: ['MINA']
}
})
(6)组合
可以在Mustache内直接进行组合,构成新的对象或数组。
{{item}}
Page({
data: {
zero: 0
}
})
最终组合成数组[0, 1, 2, 3, 4]。
Page({
data: {
a: 1,
b: 2
}
})
最终组合成的对象是 {for: 1, bar: 2}
也可以用扩展运算符 ... 来将一个对象展开
Page({
data: {
obj1: {
a: 1,
b: 2
},
obj2: {
c: 3,
d: 4
}
}
})
最终组合成的对象是 {a: 1, b: 2, c: 3, d: 4, e: 5}。
注意: 花括号和引号之间如果有空格,将最终被解析成为字符串
{{item}}
等同于
{{item}}
2.列表渲染
在组件上使用wx:for控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。
默认数组的当前项的下标变量名默认为index,数组当前项的变量名默认为item。
使用wx:for-item可以指定数组当前元素的变量名。
使用wx:for-index可以指定数组当前下载的变量名。
{{idx}}: {{itemName.message}}
3.条件渲染
因为wx:if之中的模板也可能包含数据绑定,所以当wx:if的条件值切换时,框架有一个局渲染的过程,因为它会确保条件块在切换时销毁或重新渲染。
同时,wx:if只在第一次变成真的时候才开始渲染,相比之下,hidden就简单的多,组件始终会被渲染,只是简单的控制显示与隐藏。
4.模板
可以在模板中定义代码片段,然后在不同的地方调用。
{{index}}: {{msg}}
Time: {{time}}
使用is属性,声明城要的使用的模板,然后将模板所需要data传入,
Page({
data: {
item: {
index: 0,
msg: 'this is a template',
time: '2016-09-15'
}
}
})
模板只能使用data传入的数据以及模板定义文件中定义的
5.事件
(1)事件的使用方式
当用户点击该组件的时候会在该页面中对应的Page中找到相应的事件处理函数。
Click me!
Page({
tapName: function(event) {
console.log(event)
}
})
(2)事件详解
touchstart-手指触摸动作开始。
touchmove-手指触摸移动。
touchcancel-手指触摸动作被打断,如来电提醒,弹窗
touchend-手指触摸动作结束
tap-手指触摸后马上离开
longpress-手指触摸后,超过350ms再离开,如果指定了事件回调函数并触发了这个事件,tap事件将不被触发
longtab-(推荐使用longpress替换)
transitionend-会在WXSS transition或wx.createAnimation动画结束后触发。
animationstart-会在一个WXSS animation动画开始时触发。
animationiteration-会在一个WXSS animation一次迭代结束时触发
animationend-会在一个WXSS animation动画完成时触发
touchforcechange-在支持3D touch的iphone设备,重按时会触发
(3)事件的绑定
事件绑定的写法组件的属性,以key、value的形式
bind事件绑定不会阻止冒泡事件向上冒泡,catch事件绑定可以阻止冒泡事件向上冒泡。
6.引用
WXML提供两种文件引用方式import和include
(1)import
import可以在该文件中使用目标文件定义 的template,
(2)include
include可以将目录文件除了
最后欢迎大家访问我的个人网站:1024s