邏輯層分析 應(yīng)用程序邏輯app.js

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)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,537評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,936評論 25 709
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,642評論 18 399
  • 效果圖 主要解決2個(gè)問題: 鍵盤切換的之后textView父視圖frame的改變問題 輸入文字時(shí)textView高...
    _sun1993閱讀 1,657評論 0 0
  • 文/金戈莞爾 中秋節(jié)到了,老林開著車,老領(lǐng)導(dǎo)家新領(lǐng)導(dǎo)家送了一圈月餅。剛回到辦公室,就發(fā)現(xiàn)桌子上擺了一盒月餅。盒子不...
    金戈莞爾閱讀 667評論 0 49

友情鏈接更多精彩內(nèi)容