微信小程序開(kāi)發(fā)入門:2 框架,2.1 文件目錄結(jié)構(gòu),2.2 配置

小程序開(kāi)發(fā)框架的目標(biāo)是通過(guò)盡可能簡(jiǎn)單、高效的方式讓開(kāi)發(fā)者可以在微信中開(kāi)發(fā)具有原生 APP 體驗(yàn)的服務(wù)。

框架提供了自己的視圖層描述語(yǔ)言 WXML 和 WXSS,以及基于 JavaScript 的邏輯層框架,并在視圖層與邏輯層間提供了數(shù)據(jù)傳輸和事件系統(tǒng),讓開(kāi)發(fā)者可以方便的聚焦于數(shù)據(jù)與邏輯上。

2.0 框架簡(jiǎn)介

1、響應(yīng)的數(shù)據(jù)綁定
框架的核心是一個(gè)響應(yīng)的數(shù)據(jù)綁定系統(tǒng)。整個(gè)系統(tǒng)分為兩塊:視圖層(View)和邏輯層(App Service)??蚣芸梢宰寯?shù)據(jù)與視圖非常簡(jiǎn)單地保持同步。當(dāng)做數(shù)據(jù)修改的時(shí)候,只需要在邏輯層修改數(shù)據(jù),視圖層就會(huì)做相應(yīng)的更新。

2、頁(yè)面管理
框架 管理了整個(gè)小程序的頁(yè)面路由,可以做到頁(yè)面間的無(wú)縫切換,并給以頁(yè)面完整的生命周期。開(kāi)發(fā)者需要做的只是將頁(yè)面的數(shù)據(jù),方法,生命周期函數(shù)注冊(cè)進(jìn) 框架 中,其他的一切復(fù)雜的操作都交由 框架 處理。

3、基礎(chǔ)組件
框架 提供了一套基礎(chǔ)的組件,這些組件自帶微信風(fēng)格的樣式以及特殊的邏輯,開(kāi)發(fā)者可以通過(guò)組合基礎(chǔ)組件,創(chuàng)建出強(qiáng)大的微信小程序 。

4、豐富的API
框架 提供豐富的微信原生 API,可以方便的調(diào)起微信提供的能力,如獲取用戶信息,本地存儲(chǔ),支付功能等。

2.1 文件目錄結(jié)構(gòu)

小程序包含一個(gè)描述整體程序的 app 和多個(gè)描述各自頁(yè)面的 page。

一個(gè)小程序主體部分由三個(gè)文件組成,必須放在項(xiàng)目的根目錄,如下:

小程序主體文件

一個(gè)小程序頁(yè)面由四個(gè)文件組成,分別是:

小程序頁(yè)面文件

注意:為了方便開(kāi)發(fā)者減少配置項(xiàng),描述頁(yè)面的四個(gè)文件必須具有相同的路徑與文件名。

2.2 配置

app.json文件用來(lái)對(duì)微信小程序進(jìn)行全局配置,決定頁(yè)面文件的路徑、窗口表現(xiàn)、設(shè)置網(wǎng)絡(luò)超時(shí)時(shí)間、設(shè)置多 tab 等。

以下是一個(gè)包含了所有配置選項(xiàng)的 app.json :

{
  "pages": [
    "pages/index/index",
    "pages/logs/index"
  ],
  "window": {
    "navigationBarTitleText": "Demo"
  },
  "tabBar": {
    "list": [{
      "pagePath": "pages/index/index",
      "text": "首頁(yè)"
    }, {
      "pagePath": "pages/logs/logs",
      "text": "日志"
    }]
  },
  "networkTimeout": {
    "request": 10000,
    "downloadFile": 10000
  },
  "debug": true
}

2.2.1 app.json 配置項(xiàng)列表

app.json 配置項(xiàng)列表

2.2.2 pages

接受一個(gè)數(shù)組,每一項(xiàng)都是字符串,來(lái)指定小程序由哪些頁(yè)面組成。每一項(xiàng)代表對(duì)應(yīng)頁(yè)面的【路徑+文件名】信息,數(shù)組的第一項(xiàng)代表小程序的初始頁(yè)面。小程序中新增/減少頁(yè)面,都需要對(duì) pages 數(shù)組進(jìn)行修改。

文件名不需要寫文件后綴,因?yàn)榭蚣軙?huì)自動(dòng)去尋找路徑下 .json, .js, .wxml, .wxss 四個(gè)文件進(jìn)行整合。

2.2.3 window

用于設(shè)置小程序的狀態(tài)欄、導(dǎo)航條、標(biāo)題、窗口背景色。

屬性說(shuō)明:

window 對(duì)象屬性

2.2.4 tabBar

如果小程序是一個(gè)多 tab 應(yīng)用(客戶端窗口的底部或頂部有 tab 欄可以切換頁(yè)面),可以通過(guò) tabBar 配置項(xiàng)指定 tab 欄的表現(xiàn),以及 tab 切換時(shí)顯示的對(duì)應(yīng)頁(yè)面。

Tip:

  1. 當(dāng)設(shè)置 position 為 top 時(shí),將不會(huì)顯示 icon
  2. tabBar 中的 list 是一個(gè)數(shù)組,只能配置最少2個(gè)、最多5個(gè) tab,tab 按數(shù)組的順序排序。

屬性說(shuō)明:

tabBar 對(duì)象屬性

其中 list 接受一個(gè)數(shù)組,數(shù)組中的每個(gè)項(xiàng)都是一個(gè)對(duì)象,其屬性值如下:

list 對(duì)象屬性

2.2.5 networkTimeout

可以設(shè)置各種網(wǎng)絡(luò)請(qǐng)求的超時(shí)時(shí)間。

屬性說(shuō)明:

networkTimeout 對(duì)象屬性

2.2.6 page.json

每一個(gè)小程序頁(yè)面也可以使用.json文件來(lái)對(duì)本頁(yè)面的窗口表現(xiàn)進(jìn)行配置。 頁(yè)面的配置比app.json全局配置簡(jiǎn)單得多,只是設(shè)置 app.json 中的 window 配置項(xiàng)的內(nèi)容,頁(yè)面中配置項(xiàng)會(huì)覆蓋 app.json 的 window 中相同的配置項(xiàng)。

頁(yè)面的.json只能設(shè)置 window 相關(guān)的配置項(xiàng),以決定本頁(yè)面的窗口表現(xiàn),所以無(wú)需寫 window 這個(gè)鍵,如:

page.json 的window 對(duì)象屬性

參考資料:
框架:https://developers.weixin.qq.com/miniprogram/dev/framework/MINA.html
文件目錄結(jié)構(gòu):https://developers.weixin.qq.com/miniprogram/dev/framework/structure.html
配置:https://developers.weixin.qq.com/miniprogram/dev/framework/config.html

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

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

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評(píng)論 19 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,023評(píng)論 25 709
  • 路透社咯
    BetterMan_46fc閱讀 369評(píng)論 0 0
  • 丙申三月,春暖花開(kāi)清風(fēng)來(lái)。 星點(diǎn)寒雨,斜落沾濕西窗前。 無(wú)由思緒,搖曳浮沉泛心海。 清明惹愁,更憶前塵往昔事。 少...
    老彭阿輝閱讀 579評(píng)論 2 2
  • 人生總在不經(jīng)意間留下珍貴的回憶。 四月下旬,珍老師建議小牡羊可以去考國(guó)家心理師證照。在考慮初期,心...
    Xuanmany小牡羊閱讀 236評(píng)論 0 2

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