小程序開發(fā)架構(gòu)及原理
小程序宿主環(huán)境差異
iOS
JavaScriptCore WKWebView 渲染
android
X5內(nèi)核
IDE 微信開發(fā)者工具
nwjs chrome和nodejs渲染
MINA框架
View(視圖層): Page(WXML WXSS)
JSBridge: 微信能力、離線存儲(chǔ)、網(wǎng)絡(luò)請(qǐng)求...
App Service(邏輯層): Manager API
小程序運(yùn)行機(jī)制
啟動(dòng) 首次打開時(shí)間比較慢
冷啟動(dòng):有新版本,會(huì)下載新版本,下次打開則為新版本
熱啟動(dòng):用戶已經(jīng)打開過程序,一段時(shí)間內(nèi)再次打開
加載
CDN 請(qǐng)求最新代碼包,下一次啟動(dòng)時(shí)使用
小程序生命周期
應(yīng)用生命周期
onLanch->onShow->onHide->onError
頁面生命周期
onLoad->onShow->onReady->onHide->onUnload
兩個(gè)線程:AppService Thread 、View Thread
頁面路由
| 路由方式 | 頁面棧表現(xiàn) |
|---|---|
| 初始化 | 新頁面入棧 |
| 打開新頁面 | 新頁面入棧 |
| 頁面重定向 | 當(dāng)前頁面出棧,新頁面入棧 |
| 頁面返回 | 頁面不斷出棧,新頁面入棧 |
| Tab切換 | 頁面全部出棧,只留下新的Tab頁面 |
| 重加載 | 頁面全部出棧,只留下新的頁面 |