1. 程式人生 > >reactNative和5+runtime(native.js)對比

reactNative和5+runtime(native.js)對比

1.首先我們來了解這兩個東西是什麼?

    native.js:簡稱NJS,是一種將手機作業系統的原生物件轉義,對映為JS物件,在JS裡編寫原生程式碼的技術。

    我們知道js具有侷限性,它對移動硬體裝置的使用功能有限,其實這種限制並不是是說js本省有限,而是瀏覽器出於安全考慮限制掉了這些功能,試想一下你不小心點到一個惡意網站,然後在你不經意間呼叫了你的攝像頭給你拍了一張照片,還獲取了你的通訊錄,這將是一件多麼可怕的事情。

    native.js其實就是將更多的手機操作許可權開放給開發者,你可以通過js獲取更多的手機許可權,做和app一樣能做的事。這時你可能會問:這樣不就會和你上面說的會不安全了嗎? 當讓不會!首先你要知道當你使用native.js api編寫的網頁在普通瀏覽器上不會被執行的,所以你不會有更高的許可權! 

    native.js的執行環境是整合在5+runtime(跨平臺應用框架)裡面的, 在這樣的流應用或者使用HBuilder打包的app中(直接整合native.js api)可以直接使用native.js,不需要引入。

    如何使用NSJ開發app,你需要用到下面兩個東西:

    總結:NJS就是用js開發app的技術。

    reactNative:和上面的5+runtime屬於同一類別,是facebook開源的跨平臺應用開發框架,同樣使用js作為開發語言。

    reactNative使用react作為開發語言進行開發。

區別:

5+runtime

優點:
國內廠商,中文文件
對HTML5的效能、工具、能力都做了深入擴充套件,提供 IDE 、雲服務等幫助節省時間
MUI 更貼近國內App使用習慣,提供模組的詳細例子,如登入,個人中心

缺點: 
部分操作需要具備原生開發經驗,如離線打包App
新產品仍然有bug,還需改進
效能存在問題 (採用webview渲染UI)      

React Native

優點:
能夠在Javascript和React的基礎上獲得完全一致的開發體驗,構建世界一流的原生APP。
僅需學習一次,編寫任何平臺。(Learn once, write anywhere)
1. 不用Webview,徹底擺脫了Webview讓人不爽的互動和效能問題
2. 有較強的擴充套件性,這是因為Native端提供的是基本控制元件,JS可以自由組合使用
3. 可以直接使用Native原生的「牛逼」動畫(在FB Group這個app裡面,面板滑出帶一點果凍彈動,面板基於某個點展開這種動畫隨處可見,這種動畫用Native code來做小菜一碟,但是用Web來做就難上加難)

缺點: 只提供基礎訪問裝置的介面,需要自己搭配其他UI框架和JavaScript框架來搭配
初次學習成本高
必須在不同平臺下寫兩套程式碼,依賴暴露的介面
擴充套件性仍然遠遠不如web,也遠遠不如直接寫Native code