小程序开发框架的逻辑层是由JavaScript编写的。逻辑层将数据进行处理后发送给视图层,同时接收视图层的事件反馈。
1.注册程序
App函数用来注册一个小程序。它接收一个object参数,其指定小程序的生命周期函数等。App注册程序的定义及成员函数实现示例如下。
App({
onLaunch: function {
// Do something initial when launch.
},
onShow: function {
// Do something when show.
},
onHide: function {
// Do something when hide.
},
globalData: 'I am global data'
})
成员函数属性描述如表21-7所示。
表21-7 App成员函数属性说明
2.注册页面
Page函数用来注册一个页面。它接收一个object参数,其指定页面的初始数据、生命周期函数、事件处理函数等。Page函数的定义及成员函数实现示例如下。
// index.js
Page({
data: {
text: "This is page data."
},
onLoad: function(options) {
// Do some initialize when page load.
},
onReady: function {
// Do something when page ready.
},
onShow: function {
// Do something when page show.
},
onHide: function {
// Do something when page hide.
},
onUnload: function {
// Do something when page close.
},
onPullDownRefresh: function {
// Do something when pull down.
},
onReachBottom: function {
// Do something when page reach bottom.
},
// Event handler.
viewTap: function {
this.setData({
text: 'Set some data for updating view.'
})
},
customData: {
hi: 'MINA'
}
})
成员函数属性描述如表21-8所示。
表21-8 Page成员函数属性说明
3.模块化
对于一些公共的代码,可以将其抽离成为一个单独的JS文件,作为一个模块。模块只有通过module.exports或者exports才能对外暴露接口。例如下述JS文件。
// common.js
function sayHello(name) {
console.log('Hello ${name} !')
}
function sayGoodbye(name) {
console.log('Goodbye ${name} !')
}
module.exports.sayHello = sayHello
exports.sayGoodbye = sayGoodbye
在需要使用这些模块的文件中,使用require(path)将公共代码引入,示例代码如下。
var common = require('common.js')
Page({
helloMINA: function {
common.sayHello('MINA')
},
goodbyeMINA: function {
common.sayGoodbye('MINA')
}
})