- 微信小程序:開發(fā)入門及案例詳解
- 李駿 邊思
- 869字
- 2019-01-04 18:58:54
2.3.2 小程序邏輯(app.js)
小程序中邏輯文件分為頁面邏輯文件和小程序邏輯文件,app.js便是小程序邏輯文件,在這個文件中,我們可以通過App()函數(shù)注冊小程序生命周期函數(shù)、全局方法和全局屬性,已注冊的小程序?qū)嵗梢栽谄渌壿媽哟a中通過getApp()獲取。
1.注冊小程序
App()函數(shù)用于注冊一個小程序,參數(shù)為一個Object對象,在這個參數(shù)對象中我們可以注冊自定義方法和屬性供全局使用,就像在quick start項目中,我們利用App()注冊了用戶登錄信息。App()函數(shù)必須在app.js中注冊,且不能注冊多個,其參數(shù)屬性如下:
□onLaunch:生命周期函數(shù),監(jiān)聽小程序初始化。當(dāng)小程序初始化完成時,就會觸發(fā)onLaunch, onLoaunch事件全局只會觸發(fā)一次。
□onShow:生命周期函數(shù),監(jiān)聽小程序顯示。當(dāng)小程序啟動,或者從后臺進入前臺顯示時都會觸發(fā)onShow。
□onHide:生命周期函數(shù),監(jiān)聽小程序隱藏。當(dāng)小程序從前臺進入后臺會觸發(fā)。
□其他:開發(fā)者可以添加任意的函數(shù)或數(shù)據(jù)到Object參數(shù)中,這些屬性會被注冊到小程序?qū)ο笾校渌壿嬑募梢酝ㄟ^getApp()函數(shù)獲取已注冊的小程序?qū)嵗?/p>
關(guān)于小程序生命周期函數(shù)的執(zhí)行時機我們要特別講解一下:當(dāng)啟動一個小程序時,首先會先依次觸發(fā)onLaunch和onShow方法,然后通過app.json的pages屬性注冊相應(yīng)的頁面,最后根據(jù)默認(rèn)路徑加載首頁;當(dāng)用戶點擊左上角關(guān)閉,或者按了設(shè)備Home按鈕離開微信時,小程序并沒有直接銷毀,而是進入了后臺,這兩種情況都會觸發(fā)onHide方法;當(dāng)再次喚醒微信(針對點擊Home按鈕離開微信)或再次從微信中打開小程序時,又會從后臺進入前臺,這時會觸發(fā)onShow方法。只有當(dāng)小程序進入后臺一定時間,或者系統(tǒng)資源占用過高,才會被真正銷毀。
注冊小程序示例代碼如下:
App( { onLaunch : function() { // 小程序初始化完成時執(zhí)行 }, onShow : function() { // 顯示小程序時執(zhí)行 }, onHide : function() { // 隱藏小程序時執(zhí)行 }, globalFunction : ’我是全局函數(shù)’, globalData : ’我是全局屬性’ } );
2.獲取小程序?qū)嵗?/p>
注冊小程序后,在其他邏輯文件中,可以通過全局函數(shù)getApp()獲取小程序?qū)嵗纾?/p>
var app = getApp(); console.log( app.globalData );
在App()注冊的函數(shù)中,我們可以使用this直接獲取App實例,而不用getApp()方法。通過getApp()獲取實例后,可以獲取注冊的屬性、調(diào)用注冊的方法,但不要私自調(diào)用生命周期函數(shù)(onLaunch、onShow、onHide),這樣會打亂項目邏輯,除非你已經(jīng)對它們很熟悉。
- 測試驅(qū)動開發(fā):入門、實戰(zhàn)與進階
- C#程序設(shè)計實訓(xùn)指導(dǎo)書
- 深入淺出Windows API程序設(shè)計:編程基礎(chǔ)篇
- Java程序設(shè)計與計算思維
- TypeScript圖形渲染實戰(zhàn):基于WebGL的3D架構(gòu)與實現(xiàn)
- 零基礎(chǔ)輕松學(xué)SQL Server 2016
- C語言程序設(shè)計教程
- Java Web開發(fā)就該這樣學(xué)
- 動手學(xué)數(shù)據(jù)結(jié)構(gòu)與算法
- Practical Game Design with Unity and Playmaker
- Node學(xué)習(xí)指南(第2版)
- Mastering Python Design Patterns
- ExtJS Web應(yīng)用程序開發(fā)指南第2版
- Scratch·愛編程的藝術(shù)家
- Mastering Adobe Captivate 7