小(xiǎo)程序的主要開(kāi)發語言是 JavaScript ,是小(xiǎo)程序的開(kāi)發同普通的網頁開(kāi)發相比有很大(dà)的相似性。對于前端開(kāi)發者而言,從網頁開(kāi)發遷移到小(xiǎo)程序的開(kāi)發成本并不高,但是二者還是有些許區别的。
網頁開(kāi)發渲染線程和腳本線程是互斥的,這也是爲什麽長時間的腳本運行可能會導緻頁面失去(qù)響應,而在小(xiǎo)程序中(zhōng),二者是分(fēn)開(kāi)的,分(fēn)别運行在不同的線程中(zhōng)。網頁開(kāi)發者可以使用到各種浏覽器暴露出來的 DOM API,進行 DOM 選中(zhōng)和操作。而如上文所述,小(xiǎo)程序的邏輯層和渲染層是分(fēn)開(kāi)的,邏輯層運行在 JSCore 中(zhōng),并沒有一(yī)個完整浏覽器對象,因而缺少相關的DOM API和BOM API。這一(yī)區别導緻了前端開(kāi)發非常熟悉的一(yī)些庫,例如 jQuery、 Zepto 等,在小(xiǎo)程序中(zhōng)是無法運行的。同時 JSCore 的環境同 NodeJS 環境也是不盡相同,所以一(yī)些 NPM 的包在小(xiǎo)程序中(zhōng)也是無法運行的。
網頁開(kāi)發者需要面對的環境是各式各樣的浏覽器,PC 端需要面對 IE、Chrome、QQ浏覽器等,在移動端需要面對Safari、Chrome以及 iOS、Android 系統中(zhōng)的各式 WebView 。而小(xiǎo)程序開(kāi)發過程中(zhōng)需要面對的是兩大(dà)操作系統 iOS 和 Android 的微信客戶端,以及用于輔助開(kāi)發的小(xiǎo)程序開(kāi)發者工(gōng)具,小(xiǎo)程序中(zhōng)三大(dà)運行環境也是有所區别的,如表1-1所示。
表1-1 小(xiǎo)程序的運行環境
運行環境 | 邏輯層 | 渲染層 |
---|---|---|
iOS | JavaScriptCore | WKWebView |
安卓 | V8 | chromium定制内核 |
小(xiǎo)程序開(kāi)發者工(gōng)具 | NWJS | Chrome WebView |
網頁開(kāi)發者在開(kāi)發網頁的時候,隻需要使用到浏覽器,并且搭配上一(yī)些輔助工(gōng)具或者編輯器即可。小(xiǎo)程序的開(kāi)發則有所不同,需要經過申請小(xiǎo)程序帳号、安裝小(xiǎo)程序開(kāi)發者工(gōng)具、配置項目等等過程方可完成。
下(xià)一(yī)篇 微信小(xiǎo)程序代碼構成概述