小程序开发框架的逻辑层是由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.jsPage({ 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.jsfunction sayHello(name) { console.log('Hello ${name} !')}function sayGoodbye(name) { console.log('Goodbye ${name} !')}module.exports.sayHello = sayHelloexports.sayGoodbye = sayGoodbye
在需要使用这些模块的文件中,使用require(path)将公共代码引入,示例代码如下。
var common = require('common.js')Page({ helloMINA: function { common.sayHello('MINA') }, goodbyeMINA: function { common.sayGoodbye('MINA') }})