網(wǎng)上對于小程序底層剖析的不多景埃,我挑了 玖五老師 的兩篇文章,先看我們再繼續(xù)。
《小程序底層實現(xiàn)原理及一些思考》
《小程序底層實現(xiàn)原理及一些思考(2)》
文章中,玖五老師給出了小程序的要點:
站在技術(shù)角度思考赫粥,小程序至少要保證四點:安全、穩(wěn)定予借、性能越平、簡單。
- 安全灵迫,指的是小程序的安全性秦叛,由于小程序提供給開發(fā)者更高的權(quán)限,小程序開發(fā)者擁有很多OS能力的API瀑粥,如果開發(fā)者利用這些API做些惡意的事情挣跋,那么對用戶來說將是一場災(zāi)難(隨便打開一個小程序,結(jié)果被黑客攻擊了)狞换。
- 穩(wěn)定避咆,指的是小程序的穩(wěn)定性,某個小程序崩潰或者卡死修噪,不應(yīng)該影響宿主APP及其他小程序牌借。手機上的小程序大部分只能同時打開一個小程序,所以讀者可能無法理解什么是穩(wěn)定性割按。PC上可以同時打開很多個小程序膨报,根據(jù)產(chǎn)品形態(tài)不同,有的產(chǎn)品形態(tài)的小程序可能在一個網(wǎng)頁里面運行(多個小程序同時在同一個網(wǎng)頁里運行),這時候某個小程序卡死(例如寫一個死循環(huán))现柠,它不應(yīng)該導(dǎo)致其他的小程序和宿主環(huán)境也跟著卡死院领。
- 性能,要保證小程序的執(zhí)行够吩、渲染等效率要足夠高效比然。
- 簡單,小程序?qū)τ陂_發(fā)者要足夠簡單周循,最好無需學(xué)習(xí)直接上手强法。
基于上,定了雙線程(多線程)作為開發(fā)基調(diào)湾笛,Vue作為UI渲染饮怯。
由于已經(jīng)實現(xiàn)了大部分模塊的開發(fā),所以文章中會放出比較多的簡化代碼實現(xiàn)嚎研,旨在拋磚引玉蓖墅,省略細節(jié)和錯誤判斷。
目錄
其他
本篇文章旨在交流前端相關(guān)临扮,所有沒有實現(xiàn)其他端的需求论矾。
- 對于客戶端,PC端我們可以用 CEF 來實現(xiàn)套殼杆勇,移動端參考微信小程序贪壳。
- 對于服務(wù)端,現(xiàn)有的各大廠中廠都有自身的下發(fā)包機制蚜退,不發(fā)散寥袭。
- 小程序整個技術(shù)和生態(tài)也遠不止這一些,我也沒去研究過小程序底層源碼关霸,是基于自身的理解實現(xiàn)代碼传黄,不一定對,歡迎討論队寇。
PS
目前已提供 cli 體驗膘掰,詳見 fox2app-cli