一:簡介
.json為配置檔案
.wxml 為模闆檔案,相當于HTML模闆
.wxss 為樣式檔案,相當于HTML的CSS樣式表
.js 為JS 腳本邏輯檔案,相當于HTML的js腳本
二:總結構
一個描述整體程式的 app
多個描述各自頁面的 page
一個項目IDE配置檔案project.config.json
一個共用程式邏輯庫
1.一個小程式主體部分(名稱為app)由三個檔案組成,必須放在項目的根目錄
檔案 必填 作用
app.js 是 小程式邏輯
app.json 是 小程式公共配置
app.wxss 否 小程式公共樣式表
2.多個描述各自頁面的 pages(pages目錄存儲小程式的每個頁面)
檔案 必填 作用
頁面名稱.js 是 本頁面邏輯
頁面名稱.wxml 是 頁面結構
頁面名稱.wxss 否 頁面樣式表
頁面名稱.json 否 頁面配置
注意:
1)為了友善開發者減少配置項,描述頁面的四個檔案必須具有相同的路徑與檔案名。
2)從上可看出可包含.json、.wxml、.wxss、.js4個類型的檔案
.json配置檔案,即是目前這個頁面的配置檔案,
預設建立項目時,每個頁面底下沒有.json配置檔案,因為它不是必填必須有的檔案
index和logs兩個頁面
3.根目錄下的project.config.json
1).項目配置檔案或稱為項目IDE配置檔案
在“微信開發者工具”上做的任何配置都會寫入到這個檔案。
2).應用場景:
通常在使用一個開發IDE工具的時候,都會針對各自喜好做一些個性化配置,
例如界面顔色、編譯配置等等,當你換了另外一台電腦重新安裝工具的時候,
你還要重新配置。
3).解決辦法:就是這個project.config.json項目IDE配置檔案
當你重新安裝工具或者換電腦工作時,你隻要載入同一個項目的代碼包,
開發者工具就自動會幫你恢複到當時你開發項目時的個性化配置,
其中會包括編輯器的顔色、代碼上傳時自動壓縮等等一系列選項
4).引申
這麼說,每個項目都可以定制了一套自己喜歡的IDE配置
項目根目錄下
4.一個共用程式邏輯庫(util目錄)
這個目錄可以自定義名稱
公共的js函數檔案,通過module.exports的方式暴露pages下的每個頁面使用
不需要每個頁面編寫重複的Js代碼。
module.exports暴露給頁面使用
5.總結構圖
總結構圖
三:一個描述整體程式的 app 之app.js檔案(注冊小程式項目)
作用:調用了App()函數注冊一個小程式,參數為一個{}對象
App()函數用來注冊一個小程式。接受一個 object 參數,其指定小程式的生命周期函數等
調用App(obj)函數
詳情參考API文檔"邏輯層/程式注冊"
但要注意:
1.App() 必須在 app.js 中注冊,且不能注冊多個。
2.不要在定義于 App() 内的函數中調用 getApp() ,使用 this 就可以拿到 app 執行個體。
3.不要在 onLaunch 的時候調用 getCurrentPages(),此時 page 還沒有生成。
4.通過 getApp() 擷取執行個體之後,不要私自調用生命周期函數。
例子:
API文檔中Object對象有一個參數:
其他 Any 開發者可以添加任意的函數或資料到 Object 參數中,用 this 可以通路
相當于ApplicationContext,在整個小程式上下文中都以使用,即服務整個小程式scope。
app.js程式主體邏輯層使用this通路,在頁面.js邏輯層使用getApp().屬性名稱可以通路。
app.js的App({自定義Any屬性})
頁面.js邏輯層通路
//index.js
//擷取應用執行個體
const app = getApp()
頁面.js邏輯層通路
又例:
app.js的App({自定義Any屬性})
頁面.js邏輯層通路
視圖使用
四:一個描述整體程式的 app 之app.json檔案(配置小程式項目)
作用:對微信小程式進行全局配置,決定頁面檔案的路徑、視窗表現、設定網絡逾時時間、設定多 tab 等。
所有的選項配置pages、window、tabBar、networkTimeout、debug
app.json 配置項清單:
屬性 類型 必填 描述
pages String Array 是 設定頁面路徑
window Object 否 設定預設頁面的視窗表現
tabBar Object 否 設定底部 tab 的表現
networkTimeout Object 否 設定網絡逾時時間
debug Boolean 否 設定是否開啟 debug 模式
pages屬性說明:
類型是String Array(字元串數組), 每一項都是字元串,來指定小程式由哪些頁面組成。
每一項代表對應頁面的【路徑+檔案名】資訊,數組的第一項代表小程式的初始頁面。
小程式中新增/減少頁面,都需要對 pages 數組進行修改。
檔案名不需要字尾,架構自動比對pages 數組路徑下 .json, .js, .wxml, .wxss 4檔案進行整合。
pages字元串數組的第一個字元串頁面路徑【路徑+檔案名】為小程式顯示的首頁。
如開發目錄為:
pages/
pages/index/index.wxml
pages/index/index.js
pages/index/index.wxss
pages/logs/logs.wxml
pages/logs/logs.js
則配如下(小程式中新增/減少頁面,都需要對 pages 數組進行修改)
{
"pages": [
//這裡的的第一個頁面作為首頁顯示
"pages/index/index