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