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