小程序是一種新的移動應用程序格式,一種結(jié)合了 Web 技術(shù)以及客戶端技術(shù)的混合解決方案。
傳統(tǒng)的原生應用運行起來比較流暢,但是也有天然的基因缺陷:
- 不支持動態(tài)化,發(fā)布周期長
- 需要開發(fā)Android和iOS兩套代碼,開發(fā)成本高
相比較之下,Web 技術(shù)有這方面的優(yōu)勢,但是其劣勢也比較明顯:
- 無法離線使用
- 性能表現(xiàn)差
- 無法方便地調(diào)用原生能力
因此,小程序應運而生。它整合兩項技術(shù)的優(yōu)勢,提供一個簡單、高效的應用開發(fā)框架和豐富的組件及 API,你可以使用你熟悉的 Web 技術(shù),快速開發(fā)出具備原生體驗的應用。
特點
小程序與普通網(wǎng)頁開發(fā)的區(qū)別
小程序的主要開發(fā)語言是 JavaScript,小程序的開發(fā)同普通的網(wǎng)頁開發(fā)相比有很大的相似性。對于前端開發(fā)者而言,從網(wǎng)頁開發(fā)遷移到小程序的開發(fā)成本并不高,但是二者之間存在一些區(qū)別。
編號 | 普通網(wǎng)頁開發(fā) | 小程序開發(fā) |
---|---|---|
1 | ?網(wǎng)頁開發(fā)渲染線程和腳本線程是互斥關(guān)系,因此,長時間的腳本運行可能會導致頁面失去響應。 | 開發(fā)渲染和腳本相互獨立,分別運行在不同的線程中。 |
2 | 可以使用各種瀏覽器暴露出來的 DOM API,進行 DOM 選中和操作。 | 邏輯層和渲染層分開,邏輯層運行在 JSCore 中,并沒有一個完整瀏覽器對象,因而缺少相關(guān)的 DOM API 和 BOM API。前端開發(fā)非常熟悉的一些庫,例如 jQuery、 Zepto 等,在小程序中無法運行。同時,JSCore 的環(huán)境同 Node.js 環(huán)境也不盡相同,所以,一些 NPM 的包在小程序中也無法運行。 |
3 | 需要面對的環(huán)境是各式各樣的瀏覽器: - PC 端:IE、Chrome、QQ 瀏覽器等; - 移動端:Safari、Chrome 以及 iOS、Android 系統(tǒng)中的各式 WebView。 |
需要面對的是兩大操作系統(tǒng) iOS 和 Android 的客戶端,以及用于輔助開發(fā)的小程序開發(fā)者工具。小程序中三大運行環(huán)境也有所區(qū)別,如下表所示。 |
4 | 只需要使用到瀏覽器,并且搭配上一些輔助工具或者編輯器。 | 需要經(jīng)過申請小程序帳號、安裝小程序開發(fā)者工具、配置項目等過程。 |
運行環(huán)境 | 邏輯層 | 渲染層 |
---|---|---|
iOS | Quickjs | WKWebView |
安卓 | Quickjs | Chrome WebView |
Tuya MiniApp Tools | Chrome WebView | Chrome WebView |
小程序和PWA的區(qū)別
小程序的目的并不是取代漸進式 Web 應用程序 (PWA)、原生應用或 Web。
從廣義上講,這些技術(shù)之間的顯著差異之一是執(zhí)行環(huán)境。PWA 幾乎可以在瀏覽器中的任何支持 Web 的環(huán)境中運行,而小程序則綁定到特定平臺。另一個本質(zhì)區(qū)別是分發(fā)機制,小程序是打包且獨立的,而 PWA 的資源分布在整個 Web 上。
兩種技術(shù)在編碼方面都使用類似的編程和標記語言以及基于 CSS 的樣式表。小程序基于 HTML子集以及數(shù)據(jù)綁定和事件管理的特定機制實現(xiàn)專用的領(lǐng)域特定語言。
PWA 依賴于標準 Web API,而小程序則實現(xiàn)非標準 API 以最大限度地發(fā)揮平臺的功能,例如設備特定的功能和涂鴉專有的服務。
技術(shù)架構(gòu)
小程序采用視圖層和邏輯層分離的架構(gòu)。視圖層負責渲染頁面,包括Web組件和原生組件顯示,可以認為是混合渲染。邏輯層是用JS引擎實現(xiàn)的, 負責小程序的事件處理、API 調(diào)用和生命周期管理。
Tuya MiniApp
Tuya MiniApp 是涂鴉基于小程序,集合開發(fā)工具,研發(fā)框架,開發(fā)平臺, 容器SDK等設施打造的完整的移動應用研發(fā)體系。
你可以使用 Tuya MiniApp Tools 進行小程序的開發(fā)調(diào)試,使用小程序開發(fā)者平臺做小程序的管理配置。
小程序需要運行在 MiniApp SDK之上,它作為小程序的運行容器。涂鴉系的 App 內(nèi)置了該SDK。
在開發(fā)階段,你可以使用小程序原生語法開發(fā),也可以使用涂鴉自研的Ray框架,體驗React的研發(fā)模式。后續(xù)我們也會支持其他前端框架。
由于應用場景的差異,在運行態(tài),分成智能小程序和面板小程序兩種形式。其中面板小程序用來開發(fā)設備面板,它有特定的研發(fā)模式,并且我們推薦使用Ray進行面板小程序的研發(fā),因為涂鴉在該模式上做了大量的實踐積累,可以幫助你大大提升面板小程序的研發(fā)效率。文章來源:http://www.zghlxwxcb.cn/news/detail-803472.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-803472.html
立即開發(fā)小程序
到了這里,關(guān)于什么是小程序?特點和技術(shù)架構(gòu)詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!