映月读书网 > 微信公众平台开发:从零基础到ThinkPHP5高性能框架实践 > 21.2.3 逻辑层 >

21.2.3 逻辑层

小程序开发框架的逻辑层是由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')
    }
})