
timg.jpg
應(yīng)用程序邏輯app.js
app.js作為項(xiàng)目主入口文件,用于創(chuàng)建應(yīng)用程序?qū)ο?/p>
// App函數(shù)是一個(gè)全局函數(shù),用于創(chuàng)建應(yīng)用程序?qū)ο?App({
//全局?jǐn)?shù)據(jù)對象(可以整個(gè)應(yīng)用程序共享)
globalData: { ... }, // 應(yīng)用程序全局方法
method1 (p1, p2) { ... },
method2 (p1, p2) { ... }, //生命周期方法
// 應(yīng)用程序啟動(dòng)時(shí)觸發(fā)一次
onLaunch () { ... }, // 當(dāng)應(yīng)用程序進(jìn)入前臺顯示狀態(tài)時(shí)觸發(fā)
onShow () { ... }, // 當(dāng)應(yīng)用程序進(jìn)入后臺狀態(tài)時(shí)觸發(fā)
onHide () { ... }
})
也就是說,當(dāng)應(yīng)用程序啟動(dòng)時(shí)會(huì)自動(dòng)執(zhí)行項(xiàng)目目錄下的app.js文件。
在app.js中通過調(diào)用全局App([option])方法創(chuàng)建一個(gè)應(yīng)用程序?qū)嵗?/p>
其中通過參數(shù)指定的一些特定的方法,會(huì)在特定的執(zhí)行時(shí)機(jī)去執(zhí)行,也就是說通常所說的生命周期事件方法。
| 屬性 | 類型 | 描述 | 觸發(fā)時(shí)機(jī) |
|---|---|---|---|
| onLaunch | Function | 生命周期函數(shù)–監(jiān)聽小程序初始化 | 當(dāng)小程序初始化完成時(shí),會(huì)觸發(fā) onLaunch(全局只觸發(fā)一次) |
| onShow | Function | 生命周期函數(shù)–監(jiān)聽小程序顯示 | 當(dāng)小程序啟動(dòng),或從后臺進(jìn)入前臺顯示,會(huì)觸發(fā) onShow |
| onHide | Function | 生命周期函數(shù)–監(jiān)聽小程序隱藏 | 當(dāng)小程序從前臺進(jìn)入后臺,會(huì)觸發(fā) onHide |
也可以定義任意其他的對象成員(例如:方法和屬性),這些成員可以在內(nèi)部直接使用,或者外部通過獲取app對象調(diào)用:
| 屬性 | 類型 | 描述 |
|---|---|---|
| 其他 | Any | 開發(fā)者可以添加任意的函數(shù)或數(shù)據(jù)到 Object 參數(shù)中,用 this 可以訪問,一般用于存放業(yè)務(wù)邏輯配置,比如:API地址 |
app.js
App({
data1: '123',
data2: { message: 'hello world' },
api: {
list: 'https://github.com/zce/',
detail: 'https://github.com/zce/',
},
foo () {
return 'bar'
}
})
other.js
// getApp 也是全局函數(shù),可以在任意地方調(diào)用,用于獲取全局應(yīng)用程序?qū)嵗龑ο?var app = getApp()
console.log(app.data1)
console.log(app.data2)
console.log(app.foo())
頁面邏輯[page-name].js
[page-name].js是一個(gè)頁面的重要組成部分,用于創(chuàng)建頁面對象
// 獲取全局應(yīng)用程序?qū)ο骳onst app = getApp()
// Page也是一個(gè)全局函數(shù),用來創(chuàng)建頁面對象
Page({
// ========== 頁面數(shù)據(jù)對象(可以暴露到視圖中,完成數(shù)據(jù)綁定) ==========
data: { ... },
// ========== 頁面方法(可以用于抽象一些公共的行為,例如加載數(shù)據(jù),也可以用于定義事件處理函數(shù)) ==========
method1 (p1, p2) { ... },
method2 (p1, p2) { ... },
// ========== 生命周期方法 ==========
// 頁面加載觸發(fā)
onLoad () { ... }
...
})
在應(yīng)用程序執(zhí)行到當(dāng)前頁面時(shí),會(huì)執(zhí)行當(dāng)前頁面下對應(yīng)的[page-name].js文件。
在[page-name].js中通過調(diào)用全局Page([option])方法創(chuàng)建一個(gè)頁面實(shí)例。
Page([option])方法[option]參數(shù)說明
| 屬性 | 類型 | 描述 |
|---|---|---|
| data | Object | 頁面的初始數(shù)據(jù) |
| onLoad | Function | 生命周期函數(shù)–監(jiān)聽頁面加載 |
| onReady | Function | 生命周期函數(shù)–監(jiān)聽頁面初次渲染完成 |
| onShow | Function | 生命周期函數(shù)–監(jiān)聽頁面顯示 |
| onHide | Function | 生命周期函數(shù)–監(jiān)聽頁面隱藏 |
| onUnload | Function | 生命周期函數(shù)–監(jiān)聽頁面卸載 |
| onPullDownRefreash | Function | 頁面相關(guān)事件處理函數(shù)–監(jiān)聽用戶下拉動(dòng)作 |
| 其他 | Any | 開發(fā)者可以添加任意的函數(shù)或數(shù)據(jù)到 object 參數(shù)中,用 this 可以訪問 |
如果你有更好的心得和建議,歡迎拍磚一起探討。
歡迎加入【編程技術(shù)微分享】,加入(596888158)請留言,或聯(lián)系QQ:Mr.Chen(1182929304)