移動端多端框架選型

DATE: 2020/02/09


通過下面兩篇文章整理:

摘要

底層級別

提供底層渲染引擎佈局引擎、中層 DSL (Domain-specific Language)、上層框架。

性能高,渲染一致,跨系統平臺,也能編譯運行於瀏覽器;

需要學開發語言;

不支持小程序;

Web 技術

沒有 DOM,沒有 BOM,通過貼近前端生態技術,自研佈局引擎處理 CSS,使用 JavaScript 寫業務邏輯,使用流行的前端框架作爲 DSL,各端分別使用各自的原生組件渲染;通過註冊、調用模塊來實現調用移動設備原生 API;

爲了保持框架的通用性,內置的原生模塊有限;

無渲染引擎,渲染一致性不高;

業務邏輯運行在 JavaScript Thread,與 Native 頻繁通信,性能不高,容易掉幀卡頓。

編譯型

以 JavaScript 作爲基礎選定一個 DSL 框架,以這個 DSL 框架爲標準在各端分別編譯爲不同的代碼,各端分別有一個運行時框架(容器)或兼容組件庫保證代碼正確運行。

遵循 React、Vue 語法規範,作爲多端的上層應用語言,編譯到不同平臺,開發一次,到處運行,開發一次,到處調錯。

taro/(React Native,expo)、chameleon/(Weex)、uni-app/(Weex,nvue) 框架支持 APP 端。

跨 APP 端時兼容性較差,問題根源難以定位(運行時、編譯時、組件庫、依賴庫);

chameleon,有一套 SDK 配合多端協議與原生語言通信,多端支持度好;代碼和測試用例非常規範。

結論 (TL;DR)

追求性能,跨平臺、無中國特色小程序,Flutter

遵循 React 語法規範,taro

遵循 Vue 語法規範、組件多,uni-app

遵循 Vue 語法規範、架構設計合理、多端支持度好,chameleon

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章