對比React Native、dcloud、LuaView三個框架技術(內部)
主要對比React Native和5+SDK(就是dcloud的SDK)兩個:
- 開發語言:三個都是用其他語言來統一開發IOS、android應用的框架技術,其中,React Native是使用純JS,5+SDK是使用JS和html,LuaView則是使用lua語言,三者都是使用css或者類css佈局,這點都很像,
三者都可以使用原生(IOS、android)語言做一部分功能,比如有特殊效能要求的地方,就使用原生程式碼寫,然後前端指令碼語言呼叫; - 開發效率:RN和5+SDK是主要採用JS語言做開發,效率上不是問題,LuaView採用的是lua指令碼語言,這個大家都不熟悉,所以建議優先前兩種;
- 動態釋出特性:三者都支援動態釋出,而且最方便的是RN(簡要說下RN如何工作的,RN採用的是React技術<這個技術已經好多年了,是比較成熟的,只是RN才出現一年半>,這個技術是依託於node.js,並且釋出後臺採用node.js,檔案修改替換即釋出,不需要做另外的版本控制<版本控制採用SVN或者git的方式>;釋出時,在後臺整個專案是作為node.js的一個node節點來發布的;主專案中基本上是一個空專案,引入其他的native模組,這樣管理很方便)
- 擴充套件性:都是動態釋出,只有基礎native元件需要更新時才需要appstore稽核釋出;
- 可讀性:RN是採用純JS開發,不需要html,程式碼上的行數一般要比5+SDK少很多,而且RN的開發過程中,規範做的也不錯(個人感覺html+js+css會導致程式碼的行數上增大很多,閱讀起來也就沒那麼方便)
- 效能:RN是採用JS橋接加Native橋接兩個方式合併起來,然後加上增加對比差異化演算法增量渲染,而且渲染都是native渲染,效能雖然比純原生差一點,但是還是遠遠比H5的效能要快很多;
5+SDK,開發時是html+js+css來開發,其實真正執行渲染時仍然是webview,我用工具檢視過最終的頁面結構,是一個webview,效能慢那是沒的說的了 - 相關開發工具:5+SDK提供一個工具,也不錯,不過我們一般都是用其他的文字編輯器就可以了;RN也提供了一個開發工具,atom編輯器的外掛nuclide,還不熟練,不過應該不錯(也有很多人使用sublime)。
- 開發初階段,上手速度:RN比較大型,雖然採用的是純JS開發,但是採用的React的開發方式,有很多的API需要熟悉和使用,相比於5+SDK上手速度是麻煩了點;而且RN的開發環境的搭建和使用需要很多的命令列工具,這也給RN的上手增加了一定的困難,不過用熟練了,就會發現RN這種方式的好,那真是好不好誰用誰知道(貌似5+SDK也是需要熟悉很多API,這點好像差別不是特別大);
- 社群力量:RN在React之後誕生了僅僅一年半,但是github的星數已經達到3、4萬了,這個火熱程度要遠遠比其他的框架熱門了太多了,社群的力量大,就意味著坑少,或者說即使有坑修復的也快,有問題能找到解決方案的速度也越快,框架完善的速度也越快
- 開源:這也是很重要的因素,RN和LuaView是開源的,開源就意味著我們開發人員可以掌控的力度就越大,這年頭,框架不開源,早晚得死;
- 文件:RN的文件還是很全的,還有很多外文翻譯,官方也有相關的視訊,5+sdk和LuaView文件就很一般般,熱別是5+SDK,不開源,文件就不更新;
- RN的另外一個好處:RN同屬於React,語法特點都一致的,React的口號就是learn once, write everywhere,而且React就是為web開發而產生,熟練了這個,可以把公司相關模組,比如說web端都可以統一了;當然5+SDK也可以做到這點,LuaView做不到這點,它只適用於IOS、Android的適配。
最後分享一個找到的一個別人開源出來的RN開發的APP:
https://github.com/soliury/noder-react-native
相關文章
- react-native技術的優劣React
- 一次掌握 React 與 React Native 兩個框架React Native框架
- Vue與React兩個框架的粗略區別對比VueReact框架
- Flutter系列(二)——與React Native進行對比FlutterReact Native
- 前端三大框架對比前端框架
- 原生移動應用框架React Native與Flutter比較框架React NativeFlutter
- Flutter 比 React Native 更優秀的五個理由FlutterReact Native
- sqlsugar freesql hisql 三個ORM框架效能測試對比SqlSugarORM框架
- 從技術、市場、環境三個維度對比中美雲端計算產業產業
- Flutter與React Native的比較FlutterReact Native
- RN幾種腳手架工具的使用和對比(react-native-cli、create-react-native-app、exp)ReactAPP
- [React技術內幕] setState的祕密React
- 「技術雷達」之使用 Enzyme 測試 React(Native)元件React元件
- React Native 佈局 (組內分享)React Native
- Flutter介紹 - Flutter,H5,React Native之間的對比FlutterH5React Native
- 移動跨平臺方案對比:WEEX、React Native、Flutter和PWAReact NativeFlutter
- 10 個 Go Web 開發框架對比-國內地址可以直接看GoWeb框架
- [譯] React Native 對 Flutter:哪一個對創業公司更加友好?React NativeFlutter創業
- 【譯】Flutter vs React Native vs Native:深度效能比較FlutterReact Native
- 技術實踐丨React Native 專案 Web 端同構React NativeWeb
- AR/VR/MR/CR技術哪個好 四大“R”技術區別對比VR
- React Native框架探索學習筆記React Native框架筆記
- 一個資深iOS開發者對於React Native的看法iOSReact Native
- 容器技術和虛擬機器技術的對比虛擬機
- react native學習筆記(三)React Native筆記
- React Native元件篇(三) — TextInput元件React Native元件
- 《深入react技術棧》學習筆記(三)漫談ReactReact筆記
- 最流行的5個前端框架對比前端框架
- [譯] Airbnb 在 React Native 上下的賭注(二):技術細節AIReact Native
- Hyperledger Fabric和FISCO BCOS技術對比
- 三個流行MySQL分支的對比MySql
- H5、React Native、Native應用對比分析H5React Native
- react前端框架dva(三)React前端框架
- [React技術內幕] key帶來了什麼React
- Redo內部解析(三)
- [React Native]react-native-scrollabReact Native
- 對比和分析幾個流行的前端框架前端框架
- 優愛騰三大視訊APP技術對比--記憶體佔用APP記憶體