02微信小程序-app.json&page.json&小程序的生命周期

使用全局配置文件app.json

app.json 配置文件

小程序根目錄下的 app.json 文件用來對(duì)微信小程序進(jìn)行全局配置,

它決定了頁面文件的路徑咖祭、窗口表現(xiàn)、設(shè)置網(wǎng)絡(luò)超時(shí)時(shí)間、設(shè)置多 tab 等。

app.json 配置文件中师郑,最主要的配置節(jié)點(diǎn)是:

  • pages 數(shù)組:配置小程序的頁面路徑
  • window 對(duì)象:用于設(shè)置小程序的狀態(tài)欄添忘、導(dǎo)航條察皇、標(biāo)題、窗口背景色
  • tabBar 對(duì)象:配置小程序的tab欄效果
    注:全局配置詳細(xì)文檔

一.pages數(shù)組的用法

app.json 中的 pages 數(shù)組欺旧,用來配置小程序的頁面路徑

  • pages 用于指定小程序由哪些頁面組成姑丑,每一項(xiàng)都對(duì)應(yīng)一個(gè)頁面的 路徑+文件名 信息。
  • 文件名不需要寫文件后綴辞友,框架會(huì)自動(dòng)去尋找對(duì)應(yīng)位置的 .json、 .js震肮、 .wxml 和 .wxss 四個(gè)文件進(jìn)行處理称龙。
    image.png
自動(dòng)創(chuàng)建新頁面
  1. 需要新建頁面目錄 -> 新建頁面文件 -> 修改pages數(shù)組
  2. 打開 app.json -> pages 數(shù)組節(jié)點(diǎn) -> 新增頁面路徑并保存 -> 自動(dòng)創(chuàng)建路徑對(duì)應(yīng)的頁面
設(shè)置默認(rèn)首頁
  • 打開 app.json -> pages 數(shù)組節(jié)點(diǎn)
  • 按需調(diào)整數(shù)組中路徑的順序,即可修改默認(rèn)首頁
    注意:
    ① 數(shù)組的第一項(xiàng)代表小程序的初始頁面(首頁)戳晌。
    ② 小程序中新增/減少頁面鲫尊,都需要對(duì) pages 數(shù)組進(jìn)行修改。

二沦偎。window對(duì)象

小程序窗口的組成部分
image.png
window節(jié)點(diǎn)常用的配置項(xiàng)

image.png

常見的屬性配置: 常見的屬性配置

1.設(shè)置導(dǎo)航欄標(biāo)題文字內(nèi)容
  • app.json --> window --> navigationBarTitleText
  • 將屬性值修改即可
2.設(shè)置導(dǎo)航欄背景色
  • app.json --> window --> navigationBarBackgroundColor
  • 將屬性值修改為指定的顏色就可以
3.設(shè)置導(dǎo)航欄標(biāo)題顏色
  • app.json --> window --> navigationBarTextStyle
  • 將屬性值修改為指定的顏色就可以black/white
4.全局開啟下拉刷新功能

通過手指在屏幕上的下拉滑動(dòng)操作疫向,從而重新加載頁面數(shù)據(jù)的行為

  • app.json --> window --> 把 enablePullDownRefresh 的值設(shè)置為 true
5.設(shè)置下拉刷新窗口的背景色

當(dāng)全局開啟下拉刷新功能之后,默認(rèn)的窗口背景為白色

  • app.json -> window -> backgroundColor
    當(dāng)全局開啟下拉刷新功能之后豪嚎,默認(rèn)的窗口背景為白色搔驼;如果自定義下拉刷新窗口背景色,設(shè)置步驟為 :
    app.json -> window -> 為 backgroundColor 指定16進(jìn)制顏色值 #eee
6.設(shè)置下拉loading的樣式

當(dāng)全局開啟下拉刷新功能之后侈询,默認(rèn)窗口的loading樣式為白色

  • app.json --> window --> backgroundTextStyle
    當(dāng)全局開啟下拉刷新功能之后舌涨,默認(rèn)窗口的loading樣式為白色,如果要更改loading樣式的效果扔字,設(shè)置步驟為
7.設(shè)置上拉觸底的距離

手指在屏幕上的上拉滑動(dòng)操作囊嘉,從而加載更多數(shù)據(jù)的行為

  • app.json --> window --> onReachBottomDistance
    注意: 默認(rèn)距離為 50px,如果沒有特殊需求革为,建議使用默認(rèn)值即可

三 .tabBar - 配置Tab欄

tabBar 是移動(dòng)端應(yīng)用常見的頁面效果扭粱,用于實(shí)現(xiàn)多頁面的快速切換;小程序中通常將其分為底部 tabBar 和頂部 tabBar

注意:tabBar 中震檩,只能配置最少2個(gè)琢蛤、最多5個(gè) tab 頁簽,當(dāng)渲染頂部 tabBar 的時(shí)候恳蹲,不顯示 icon虐块,只顯示文本
注: tabbar 詳細(xì)文檔

image.png

tabBar的組成部分
  • backgroundColor:導(dǎo)航條背景色
  • selectedIconPath:選中時(shí)的圖片路徑
  • borderStyletabBar上邊框的顏色
  • iconPath:未選中時(shí)的圖片路徑
  • selectedColortab 上的文字選中時(shí)的顏色
  • colortab 上的文字默認(rèn)(未選中)顏色
    image.png
tabBar節(jié)點(diǎn)的配置項(xiàng)
1. tabBar 節(jié)點(diǎn)的配置項(xiàng)
屬性 類型 必填 默認(rèn)值 描述
color HexColor . tab 上的文字默認(rèn)顏色,僅支持十六進(jìn)制顏色
selectedColor HexColor . tab 上的文字選中時(shí)的顏色嘉蕾,僅支持十六進(jìn)制顏色
backgroundColor HexColor . tab 的背景色贺奠,僅支持十六進(jìn)制顏色
borderStyle string black tabBar 上邊框的顏色, 僅支持 black / white
list Array . tab 的列表错忱,詳見 list 屬性說明儡率,最少 2 個(gè)挂据、最多 5 個(gè) tab
position string bottom tabBar 的位置,僅支持 bottom/ top
custom boolean false 自定義 tabBar
2.list 節(jié)點(diǎn)的配置項(xiàng)
屬性 類型 必填 說明
pagePath string 頁面路徑儿普,必須在 pages 中先定義
text string tab 上按鈕文字
iconPath string 圖片路徑崎逃,icon 大小限制為 40kb,建議尺寸為 81px * 81px
selectedIconPath string 選中時(shí)的圖片路徑眉孩,icon 大小限制為 40kb个绍,建議尺寸為 81px * 81px

注意:

  • 都不支持網(wǎng)絡(luò)圖片
  • 當(dāng) position 為 top 時(shí),不顯示 icon浪汪。

使用頁面配置文件page.json

頁面級(jí)別和全局級(jí)別配置的關(guān)系

小程序中巴柿,app.json 中的 window節(jié)點(diǎn),可以全局配置小程序中每個(gè)頁面的窗口表現(xiàn)死遭;
如果某些小程序頁面广恢,想要擁有特殊的窗口表現(xiàn),此時(shí)呀潭,“頁面級(jí)別的.json配置文件”就可以實(shí)現(xiàn)這種需求钉迷;
總結(jié):頁面級(jí)別配置優(yōu)先于全局配置生效。

頁面配置文件中可選的配置項(xiàng)列表

image.png

注意:頁面的.json只能設(shè)置 window 相關(guān)的配置項(xiàng)钠署,以決定本頁面的窗口表現(xiàn)糠聪。

頁面配置文件中可選的配置項(xiàng)列表

image.png

注意:頁面的.json只能設(shè)置 window 相關(guān)的配置項(xiàng),以決定本頁面的窗口表現(xiàn)踏幻;

小程序的生命周期

生命周期(Life Cycle)是指一個(gè)對(duì)象從 創(chuàng)建 -> 運(yùn)行 -> 銷毀 的整個(gè)階段枷颊,強(qiáng)調(diào)的是一個(gè)時(shí)間段。

生命周期的兩種類型
小程序的生命周期
  • 小程序的啟動(dòng)该面,表示生命周期的開始
  • 小程序的關(guān)閉夭苗,表示生命周期的結(jié)束
  • 中間小程序運(yùn)行的過程,就是小程序的生命周期
在小程序中隔缀,包含兩種類型的生命周期:
  • 應(yīng)用生命周期:特指小程序從啟動(dòng) -> 運(yùn)行 -> 銷毀的過程题造;
  • 頁面生命周期:特指小程序中,每個(gè)頁面的加載 -> 渲染 -> 銷毀的過程猾瘸;
    其中界赔,頁面的生命周期范圍較小,應(yīng)用程序的生命周期范圍較大牵触,如圖所示:


    image.png
什么是生命周期函數(shù)

小程序框架提供的內(nèi)置函數(shù)淮悼,會(huì)伴隨著生命周期,自動(dòng)按次序執(zhí)行
允許程序員在特定的生命周期時(shí)間點(diǎn)上揽思,執(zhí)行某些特定的操作袜腥。例如,頁面剛加載的時(shí)候钉汗,在生命周期函數(shù)中自動(dòng)發(fā)起數(shù)據(jù)請(qǐng)求羹令,獲取當(dāng)前頁面的數(shù)據(jù)鲤屡;
注意:生命周期強(qiáng)調(diào)的是時(shí)間段,生命周期函數(shù)強(qiáng)調(diào)的是時(shí)間點(diǎn)福侈。

應(yīng)用生命周期函數(shù)

  • app.js 是小程序執(zhí)行的入口文件酒来,在 app.js 中必須調(diào)用 App() 函數(shù),且只能調(diào)用一次肪凛。其中堰汉,App() 函數(shù)是用來注冊(cè)并執(zhí)行小程序的。
  • App(Object) 函數(shù)接收一個(gè) Object 參數(shù)伟墙,可以通過這個(gè) Object 參數(shù)衡奥,指定小程序的生命周期函數(shù)。
    app.js代碼:
App({
   /**
   * 當(dāng)小程序初始化完成時(shí)远荠,會(huì)觸發(fā) onLaunch(全局只觸發(fā)一次)
   */
  onLaunch: function () {
    // console.log('小程序啟動(dòng)了')
  },
 /**
   * 當(dāng)小程序啟動(dòng),或從后臺(tái)進(jìn)入前臺(tái)顯示失息,會(huì)觸發(fā) onShow
   */
  onShow: function (options) {
    // console.log('小程序顯示出來了')
  },

  /**
   * 當(dāng)小程序從前臺(tái)進(jìn)入后臺(tái)譬淳,會(huì)觸發(fā) onHide
   */
  onHide: function () {
    // console.log('小程序被隱藏到后臺(tái)了')
  },

  /**
   * 當(dāng)小程序發(fā)生腳本錯(cuò)誤,或者 api 調(diào)用失敗時(shí)盹兢,會(huì)觸發(fā) onError 并帶上錯(cuò)誤信息
   */
  onError: function (msg) {
    
  }
})
image.png

頁面生命周期函數(shù)

  • 每個(gè)小程序頁面邻梆,必須擁有自己的 .js 文件,且必須調(diào)用 Page() 函數(shù)绎秒,否則報(bào)錯(cuò)浦妄。其中 Page() 函數(shù)用來注冊(cè)小程序頁面。
  • Page(Object) 函數(shù)接收一個(gè) Object 參數(shù)见芹,可以通過這個(gè) Object 參數(shù)剂娄,指定頁面的生命周期函數(shù)。
    頁面生命周期.js:
//index.js
//獲取應(yīng)用實(shí)例
const app = getApp()

Page({

  /**
   * 頁面的初始數(shù)據(jù)
   */
  data: { },

  /**
   * 生命周期函數(shù)--監(jiān)聽頁面加載
   */
  onLoad: function (options) { },

  /**
   * 生命周期函數(shù)--監(jiān)聽頁面初次渲染完成
   */
  onReady: function () { },

  /**
   * 生命周期函數(shù)--監(jiān)聽頁面顯示
   */
  onShow: function () { },

  /**
   * 生命周期函數(shù)--監(jiān)聽頁面隱藏
   */
  onHide: function () { },

  /**
   * 生命周期函數(shù)--監(jiān)聽頁面卸載
   */
  onUnload: function () { },

  /**
   * 頁面相關(guān)事件處理函數(shù)--監(jiān)聽用戶下拉動(dòng)作
   */
  onPullDownRefresh: function () { },

  /**
   * 頁面上拉觸底事件的處理函數(shù)
   */
  onReachBottom: function () { },

  /**
   * 用戶點(diǎn)擊右上角分享
   */
  onShareAppMessage: function () { }
})
image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末玄呛,一起剝皮案震驚了整個(gè)濱河市阅懦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌徘铝,老刑警劉巖耳胎,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異惕它,居然都是意外死亡怕午,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門淹魄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來郁惜,“玉大人,你說我怎么就攤上這事揭北“饩妫” “怎么了吏颖?”我有些...
    開封第一講書人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長恨樟。 經(jīng)常有香客問我半醉,道長,這世上最難降的妖魔是什么劝术? 我笑而不...
    開封第一講書人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任缩多,我火速辦了婚禮,結(jié)果婚禮上养晋,老公的妹妹穿的比我還像新娘衬吆。我一直安慰自己,他們只是感情好绳泉,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開白布逊抡。 她就那樣靜靜地躺著,像睡著了一般零酪。 火紅的嫁衣襯著肌膚如雪冒嫡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,255評(píng)論 1 308
  • 那天四苇,我揣著相機(jī)與錄音孝凌,去河邊找鬼。 笑死月腋,一個(gè)胖子當(dāng)著我的面吹牛蟀架,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播榆骚,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼片拍,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了寨躁?” 一聲冷哼從身側(cè)響起穆碎,我...
    開封第一講書人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎职恳,沒想到半個(gè)月后所禀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡放钦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年色徘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片操禀。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡褂策,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情斤寂,我是刑警寧澤耿焊,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站遍搞,受9級(jí)特大地震影響罗侯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜溪猿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一钩杰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧诊县,春花似錦讲弄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至胸嘁,卻和暖如春驹饺,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背缴渊。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鱼炒,地道東北人衔沼。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像昔瞧,于是被迫代替她去往敵國和親指蚁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容