對(duì)比React Native、dcloud、LuaView三個(gè)框架技術(shù)(內(nèi)部)

主要對(duì)比React Native和5+SDK(就是dcloud的SDK)兩個(gè):

  1. 開(kāi)發(fā)語(yǔ)言:三個(gè)都是用其他語(yǔ)言來(lái)統(tǒng)一開(kāi)發(fā)IOS、android應(yīng)用的框架技術(shù),其中,React Native是使用純JS,5+SDK是使用JS和html,LuaView則是使用lua語(yǔ)言,三者都是使用css或者類(lèi)css布局,這點(diǎn)都很像,
    三者都可以使用原生(IOS、android)語(yǔ)言做一部分功能,比如有特殊性能要求的地方,就使用原生代碼寫(xiě),然后前端腳本語(yǔ)言調(diào)用;
  2. 開(kāi)發(fā)效率:RN和5+SDK是主要采用JS語(yǔ)言做開(kāi)發(fā),效率上不是問(wèn)題,LuaView采用的是lua腳本語(yǔ)言,這個(gè)大家都不熟悉,所以建議優(yōu)先前兩種;
  3. 動(dòng)態(tài)發(fā)布特性:三者都支持動(dòng)態(tài)發(fā)布,而且最方便的是RN(簡(jiǎn)要說(shuō)下RN如何工作的,RN采用的是React技術(shù)<這個(gè)技術(shù)已經(jīng)好多年了,是比較成熟的,只是RN才出現(xiàn)一年半>,這個(gè)技術(shù)是依托于node.js,并且發(fā)布后臺(tái)采用node.js,文件修改替換即發(fā)布,不需要做另外的版本控制<版本控制采用SVN或者git的方式>;發(fā)布時(shí),在后臺(tái)整個(gè)項(xiàng)目是作為node.js的一個(gè)node節(jié)點(diǎn)來(lái)發(fā)布的;主項(xiàng)目中基本上是一個(gè)空項(xiàng)目,引入其他的native模塊,這樣管理很方便)
  4. 擴(kuò)展性:都是動(dòng)態(tài)發(fā)布,只有基礎(chǔ)native組件需要更新時(shí)才需要appstore審核發(fā)布;
  5. 可讀性:RN是采用純JS開(kāi)發(fā),不需要html,代碼上的行數(shù)一般要比5+SDK少很多,而且RN的開(kāi)發(fā)過(guò)程中,規(guī)范做的也不錯(cuò)(個(gè)人感覺(jué)html+js+css會(huì)導(dǎo)致代碼的行數(shù)上增大很多,閱讀起來(lái)也就沒(méi)那么方便)
  6. 性能:RN是采用JS橋接加Native橋接兩個(gè)方式合并起來(lái),然后加上增加對(duì)比差異化算法增量渲染,而且渲染都是native渲染,性能雖然比純?cè)钜稽c(diǎn),但是還是遠(yuǎn)遠(yuǎn)比H5的性能要快很多;
    5+SDK,開(kāi)發(fā)時(shí)是html+js+css來(lái)開(kāi)發(fā),其實(shí)真正執(zhí)行渲染時(shí)仍然是webview,我用工具查看過(guò)最終的頁(yè)面結(jié)構(gòu),是一個(gè)webview,性能慢那是沒(méi)的說(shuō)的了
  7. 相關(guān)開(kāi)發(fā)工具:5+SDK提供一個(gè)工具,也不錯(cuò),不過(guò)我們一般都是用其他的文本編輯器就可以了;RN也提供了一個(gè)開(kāi)發(fā)工具,atom編輯器的插件nuclide,還不熟練,不過(guò)應(yīng)該不錯(cuò)(也有很多人使用sublime)。
  8. 開(kāi)發(fā)初階段,上手速度:RN比較大型,雖然采用的是純JS開(kāi)發(fā),但是采用的React的開(kāi)發(fā)方式,有很多的API需要熟悉和使用,相比于5+SDK上手速度是麻煩了點(diǎn);而且RN的開(kāi)發(fā)環(huán)境的搭建和使用需要很多的命令行工具,這也給RN的上手增加了一定的困難,不過(guò)用熟練了,就會(huì)發(fā)現(xiàn)RN這種方式的好,那真是好不好誰(shuí)用誰(shuí)知道(貌似5+SDK也是需要熟悉很多API,這點(diǎn)好像差別不是特別大);
  9. 社區(qū)力量:RN在React之后誕生了僅僅一年半,但是github的星數(shù)已經(jīng)達(dá)到3、4萬(wàn)了,這個(gè)火熱程度要遠(yuǎn)遠(yuǎn)比其他的框架熱門(mén)了太多了,社區(qū)的力量大,就意味著坑少,或者說(shuō)即使有坑修復(fù)的也快,有問(wèn)題能找到解決方案的速度也越快,框架完善的速度也越快
  10. 開(kāi)源:這也是很重要的因素,RN和LuaView是開(kāi)源的,開(kāi)源就意味著我們開(kāi)發(fā)人員可以掌控的力度就越大,這年頭,框架不開(kāi)源,早晚得死;
  11. 文檔:RN的文檔還是很全的,還有很多外文翻譯,官方也有相關(guān)的視頻,5+sdk和LuaView文檔就很一般般,熱別是5+SDK,不開(kāi)源,文檔就不更新;
  12. RN的另外一個(gè)好處:RN同屬于React,語(yǔ)法特點(diǎn)都一致的,React的口號(hào)就是learn once, write everywhere,而且React就是為web開(kāi)發(fā)而產(chǎn)生,熟練了這個(gè),可以把公司相關(guān)模塊,比如說(shuō)web端都可以統(tǒng)一了;當(dāng)然5+SDK也可以做到這點(diǎn),LuaView做不到這點(diǎn),它只適用于IOS、Android的適配。

最后分享一個(gè)找到的一個(gè)別人開(kāi)源出來(lái)的RN開(kāi)發(fā)的APP:
https://github.com/soliury/noder-react-native

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容