微信客戶端在打開小程序之前,會把整個小程序的代碼包下載到本地。
緊接著通過 app.json
的 pages
字段就可以知道你當前小程序的所有頁面路徑:
{ "pages": ["pages/index/index", "pages/logs/logs"]
}
這個配置說明在 QuickStart 項目定義了兩個頁面,分別位于 pages/index/index
和 pages/logs/logs
。而寫在 pages
字段的第一個頁面就是這個小程序的首頁(打開小程序看到的第一個頁面)。
于是微信客戶端就把首頁的代碼裝載進來,通過小程序底層的一些機制,就可以渲染出這個首頁。
小程序啟動之后,在 app.js
定義的 App
實例的 onLaunch
回調會被執(zhí)行:
App({
onLaunch() { // 小程序啟動之后 觸發(fā) }
})
整個小程序只有一個 App 實例,是全部頁面共享的。
程序與頁面
你可以觀察到 pages/logs/logs
下其實是包括了4種文件的,微信客戶端會先根據 logs.json
配置生成一個界面,頂部的顏色和文字你都可以在這個 json
文件里邊定義好。緊接著客戶端就會裝載這個頁面的 WXML
結構和 WXSS
樣式。最后客戶端會裝載 logs.js
,你可以看到 logs.js
的大體內容就是:
Page({ data: { // 參與頁面渲染的數(shù)據 logs: []
},
onLoad() { // 頁面渲染后 執(zhí)行 }
})
Page
是一個頁面構造器,這個構造器就生成了一個頁面。在生成頁面的時候,小程序框架會把 data
數(shù)據和 index.wxml
一起渲染出最終的結構,于是就得到了你看到的小程序的樣子。
在渲染完界面之后,頁面實例就會收到一個 onLoad
的回調,你可以在這個回調處理你的邏輯。