对于小程序中的每个页面,都需要在页面对应的 page.js 文件中进行注册,指定页面的初始数据、生命周期回调、事件处理函数等。
注册页面有两种方式:使用 Page 注册和使用 Component 构造器注册。
text: "This is page data.",
onLoad: function (options) {
onReachBottom: function () {
onPageScroll: function () {
text: "Set some data for updating view.",
复杂的页面可以使用 Component 构造器来构造页面。
Component 构造器的主要区别是:方法需要放在 methods: { } 里面。
text: "This is page data.",
onLoad: function (options) {
onPullDownRefresh: function () {
这种创建方式非常类似于自定义组件 ,可以像自定义组件一样使用 behaviors 等高级特性。 使用 Component 构造器来构造的页面可以引用 behaviors 。 behaviors 可以用来让多个页面有相同的数据字段和方法。具体用法参见 behaviors 。 page(params) 是进入某个页面的时候会执行的页面入口函数,params 是一个 object 类型的参数,定义了页面初始数据,生命周期函数,事件处理函数等。
初始化数据将作为页面的第一次渲染。data 将会以 JSON 的形式由逻辑层传至渲染层,所以其数据必须是可以转成 JSON 的格式:字符串,数字,布尔值,对象,数组。
<view>{{array[0].msg}}</view>
array: [{ msg: "1" }, { msg: "2" }],
onLoad生命周期函数会接受到当前页面打开时设置的query参数。比如:
onLoad: function (options) {
除了初始化数据和生命周期函数,Page 中还可以定义一些特殊的函数:事件处理函数。在渲染层可以在组件中加入事件绑定,当达到触发事件时,就会执行 Page 中定义的事件处理函数。
<view bindtap="viewTap"> click me </view>
console.log("view tap");
参数 data 以 key,value 的形式表示将 this.data 中的 key 对应的值改变成 value。 callback 是一个回调函数,在这次 setData 对界面渲染完毕后调用。
<button bindtap="changeText">Change normal data</button>
<button bindtap="changeNum">Change normal num</button>
<view>{{array[0].text}}</view>
<button bindtap="changeItemInArray">Change Array data</button>
<view>{{object.text}}</view>
<button bindtap="changeItemInObject">Change Object data</button>
<view>{{newField.text}}</view>
<button bindtap="addNewField">Add new data</button>
array: [{ text: "init data" }],
changeText: function () {
changeNum: function () {
changeItemInArray: function () {
"array[0].text": "changed data",
changeItemInObject: function () {
"object.text": "changed data",
addNewField: function () {
"newField.text": "new data",
直播小程序卡片、POI 详情页商品入口场景下调起七分屏时触发。详见响应显示区域变化。 getCurrentPages() 函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。