小程序基礎[03]-小程序框架系統(tǒng)級文件

本文介紹開發(fā)微信小程序項目中的主體文件杈女,這些文件的作用达椰,以及具體的配置字段啰劲。

1.0 配置文件(app.json)

app.json文件說明

該文件是小程序的配置文件呈枉,編寫的時候需要嚴格遵循json的格式規(guī)范(關于JSON的知識點請參考javaScript系列 [05]-javaScript和JSON),在程序加載的時候負責對小程序的全局進行配置酥泞,配置項如下:

?? page:設置頁面路徑芝囤。
?? tabBar:設置tab的表現(xiàn)。
?? window:設置默認頁面的窗口表現(xiàn)羡藐。
?? networkTimeout:設置網(wǎng)絡超時時間仆嗦。
?? debug設置是否開啟debug模式,可選項為true或false谆甜,默認關閉规辱。

列出app.json文件內(nèi)容的整體結(jié)構(gòu)

{
  "pages":[],
  "window":{},
  "tabBar":{},
  "networkTimeout":{},
  "debug":false
}

pages配置項

pages配置選項負責注冊小程序的頁面罕袋,是必須要填寫的碍岔,當我們使用開發(fā)工具來創(chuàng)建頁面的時候默認會自動生成對應的配置信息付秕。

pages配置項的value值是一個包含多有頁面路徑的數(shù)組询吴,用來指定小程序由哪些頁面構(gòu)成,其中每一項均有“路徑+文件名”組成唠摹,下面給出示例:

{
"pages": [
  "pages/home/home",
  "pages/cart/cart",
  "pages/category/category",
  "pages/mine/mine",
  "pages/index/index",
  "pages/logs/logs",
  "pages/login/login",
  "component/wdd-component/block/index",
  "pages/mine/coupon/coupon",
  "component/wdd-component/addresscard/index"
]
}

說明:pages配置項中的第一個元素(上面為home)默認為小程序的首頁勾拉,路徑中不需要填寫文件后綴名藕赞,渲染頁面的時候框架會自動尋找路徑并把同名的.json斧蜕、.wxml砚偶、.wxss和.js文件進行整合。

window配置項

window配置項負責設置小程序狀態(tài)欄均芽、導航條、標題深纲、窗口背景色等系統(tǒng)級樣式囤萤。

navigationBarBackgroundColor 導航欄背景顏色 [HexColor類型]
navigationBarTextStyle 導航欄標題顏色 [String類型]涛舍,black或white(默認)
navigationBarTitleText 導航欄標題文字內(nèi)容 [String類型]
navigationStyle 導航欄樣式 [String類型]富雅,default(默認)或custom
backgroundColor 窗口的背景色 [HexColor類型]
backgroundTextStyle 下拉加載的樣式 [String類型]没佑,dark(默認)和light
backgroundColorTop 頂部窗口的背景色 [HexColor類型] 温赔,僅 iOS 支持
backgroundColorBottom 底部窗口的背景色 [HexColor類型] 陶贼,僅 iOS 支持
enablePullDownRefresh 全局開啟下拉刷新 [Boolean類型值],true和false(默認)
onReachBottomDistance 上拉觸底事件觸發(fā)時距底部距離 [Number類型]痹屹,默認值為50px

這里給出一個小程序項目中的window配置項示例

{
  "window": {
    "backgroundTextStyle": "light",
    "navigationBarBackgroundColor": "#000",
    "navigationBarTitleText": "文頂頂?shù)男〕绦?,
    "navigationBarTextStyle": "white",
    "backgroundColor": "#eeeeee"
  }
}

tabBar配置項

tabBar配置項 用于設置小程序中的tabBar選項卡志衍,在商業(yè)小程序中使用頻率很高楼肪。tabBar配置項的可配置屬性如下:

?? color tab 上的文字默認顏色[HexColor類型]
?? selectedColor tab 上的文字選中時的顏色[HexColor類型]
?? backgroundColor tab 的背景色[HexColor類型]
?? borderStyle tabbar上邊框的顏色淹辞, 僅支持 black / white(默認)
?? position tabBar的位置象缀,僅支持 bottom / top[String類型]
?? list tab 的列表最少2個爷速、最多5個元素[Array類型]

list配置項 中的每一項都應該是一個對象惫东,代表著一個tab的相關配置。list配置項的課配置屬性如下:
?? text tab 上按鈕文字
?? pagePath 頁面路徑颓遏,必須在 pages 中先定義
?? iconPath 圖片的相對路徑叁幢,icon 大小限制為40kb曼玩,不支持網(wǎng)絡圖片窒百。
?? selectedIconPath 選中時的圖片相對路徑,icon 大小限制為40kb顷帖,不支持網(wǎng)絡圖片贬墩。

這里給出一個小程序項目中的tabBar配置項的示例和最終顯示結(jié)果:

{
  "tabBar": {
    "selectedColor": "#000000",
    "list": [
      {
        "pagePath": "pages/home/home",
        "text": "首頁",
        "iconPath": "img/tabbar/home.png",
        "selectedIconPath": "img/tabbar/homeSelected.png"
      },
      {
        "pagePath": "pages/login/login",
        "text": "分類",
        "iconPath": "img/tabbar/category.png",
        "selectedIconPath": "img/tabbar/categorySelected.png"
      },
      {
        "pagePath": "pages/cart/cart",
        "text": "購物車",
        "iconPath": "img/tabbar/cart.png",
        "selectedIconPath": "img/tabbar/cartSelected.png"
      },
      {
        "pagePath": "pages/mine/mine",
        "text": "我的",
        "iconPath": "img/tabbar/mine.png",
        "selectedIconPath": "img/tabbar/mineSelected.png"
      } ]
  }}

上面配置項的顯示效果如下圖

請求超時和debug模式

networkTimeout用于控制小程序中所有網(wǎng)絡請求的超時時間(只能通過該配置項統(tǒng)一的配置)震糖。

debug配置項用于控制是否開啟debug模式吊说,默認情況下是關閉的优炬,當debug模式設置為true之后在開發(fā)者工具的控制面板,所有的調(diào)試信息將以info的形式輸雅宾。

說明:需要注意全局配置文件和頁面配置文件的關系眉抬,當路由到對應頁面的時候,頁面配置文件的配置項將會覆蓋全局配置悄谐。

2.0 邏輯控制文件(app.js)

app.js是小程序的整體邏輯控制文件,在該文件中通過App()函數(shù)來注冊小程序的生命周期函數(shù)爬舰、全局方法和全局屬性情屹,而且已經(jīng)注冊的小程序?qū)嵗梢栽谄渌倪壿媽哟a中通過getApp()函數(shù)獲取垃你。

App()函數(shù)用于注冊一個微信小程序。
App()函數(shù)必須在app.js中注冊蜡镶,且不能注冊多個官还。
App()函數(shù)的Object參數(shù)對象主要包括`生命周期函數(shù)`和其它數(shù)據(jù)望伦,生命周期函數(shù)用于程序監(jiān)聽煎殷。

生命周期函數(shù)說明

當啟動一個微信小程序的時候豪直,會首先依次觸發(fā)onLaunchonShow方法弓乙,然后通過app.json配置文件中的pages配置項來注冊相應的頁面,最后根據(jù)默認路徑加載首頁勾习。當用戶點擊關閉標簽或點擊了設備的Home按鈕離開微信的時候小程序并不會直接銷毀懈玻,而是進入后臺,這兩種情況都會觸發(fā)onHide方法英岭,當再次打開微信小程序的時候會觸發(fā)onShow方法巴席。當小程序進入后臺一定時間或者系統(tǒng)資源占用過高的時候會被真正的銷毀诅需。

注冊小程序的示例代碼(該代碼可以在app.js文件通過敲入App + Tab鍵的方式生成)

App({

  /**
   * 當小程序初始化完成時堰塌,會觸發(fā) onLaunch(全局只觸發(fā)一次)
   */
  onLaunch: function () {},
  /**
   * 當小程序啟動分衫,或從后臺進入前臺顯示蚪战,會觸發(fā) onShow
   */
  onShow: function (options) {},
  /**
   * 當小程序從前臺進入后臺,會觸發(fā) onHide
   */
  onHide: function () {},
  /**
   * 當小程序發(fā)生腳本錯誤瞎疼,或者 api 調(diào)用失敗時壁畸,會觸發(fā) onError 并帶上錯誤信息
   */
  onError: function (msg) {},
  otherDate:'存放其他數(shù)據(jù)'
})

3.0 全局樣式文件(app.wxss)

WXSS是小程序基于CSS拓展的一套樣式語言,它實現(xiàn)了CSS大部分規(guī)則太抓。
app.wxss是全局樣式表令杈,對項目中每個頁面都有效逗噩,可以將一些系統(tǒng)級別的樣式統(tǒng)一寫入到該文件中给赞。

注意:頁面在渲染的時候,頁面中的.wxss文件樣式會覆蓋app.wxss中相同的選擇器樣式残邀。


?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末空免,一起剝皮案震驚了整個濱河市蹋砚,隨后出現(xiàn)的幾起案子坝咐,更是在濱河造成了極大的恐慌,老刑警劉巖秧饮,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盗尸,死亡現(xiàn)場離奇詭異泼各,居然都是意外死亡历恐,警方通過查閱死者的電腦和手機专筷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門磷蛹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來味咳,“玉大人槽驶,你說我怎么就攤上這事〉囝恚” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵衷掷,是天一觀的道長戚嗅。 經(jīng)常有香客問我,道長枢舶,這世上最難降的妖魔是什么懦胞? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮祟辟,結(jié)果婚禮上医瘫,老公的妹妹穿的比我還像新娘。我一直安慰自己旧困,他們只是感情好,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布稼锅。 她就那樣靜靜地躺著吼具,像睡著了一般。 火紅的嫁衣襯著肌膚如雪矩距。 梳的紋絲不亂的頭發(fā)上拗盒,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機與錄音锥债,去河邊找鬼哮肚。 笑死恼策,一個胖子當著我的面吹牛抗碰,可吹牛的內(nèi)容都是我干的碳褒。 我是一名探鬼主播鞍爱,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼沉填,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起关摇,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤宪睹,失蹤者是張志新(化名)和其女友劉穎冠桃,沒想到半個月后胸蛛,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體迹蛤,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡陋桂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年梨州,在試婚紗的時候發(fā)現(xiàn)自己被綠了傻粘。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡肩祥,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出将饺,到底是詐尸還是另有隱情湖饱,我是刑警寧澤致讥,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站姚糊,受9級特大地震影響救恨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦卦洽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽苞也。三九已至殷勘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像忠蝗,于是被迫代替她去往敵國和親速种。 傳聞我的和親對象是個殘疾皇子棋傍,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

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

  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明先生_x閱讀 15,968評論 3 119
  • 最近幾天的朋友圈幾乎快被YSL星辰刷屏纵竖,blingbling的圣誕套裝很吸晴,看一眼就再也移不開眼睛,特別想收入囊...
    夏鬼豆閱讀 1,198評論 0 7
  • 坐在小天臺邊緣上兢仰,隔壁放著廣式菠蘿啤察蹲,嘴里含著一根煙混稽,吐出一個個煙圈,想著:十年,失去總是比得到的多悉默。 我們都像小...
    葉晶up閱讀 218評論 0 0
  • 嚴厲的公司 剝削了員工的休息時間 把一群人整的跟瘋子一樣 逼迫他們找客戶 強制他們完成目標 最后員工都買房買車了 ...
    yeafine閱讀 137評論 0 0
  • 昨天是中秋節(jié)迎变,但是呢,我們一家人在中秋節(jié)的日子,并沒有去哪里玩碟渺,雖然恰逢國慶期間芜繁,我們還是沒有出去玩,這就是昨天一...
    徐新明閱讀 248評論 0 0