React Native和React有啥區別?
01-05
React native 是用React的方式開發mobileApp。和phonegap不同,React Native 是Native 控制項,但以React component 的方式expose 出來。
React Native 現在對Android 的支持還不太成熟,Ios版的不錯,而且開源了
同樣的 react virtual dom 作為 dsl,react.js 以瀏覽器 DOM 作為後端,react native 以 iOS 或 Android 原生控制項作為後端。
編程思路會有所不同,react 直接渲染dom,而rn生成id,用bridge(最新用c++實現了)變成一個表,等待 native 去調用,寫react可以用前端知識直接上手,rn雖然也可以,但是深入下去沒有native知識支持很難,有時候也無法理解一些現象,正在努力學習oc。
又比如單元測試,react可以用e2e的集成測,而rn要用到react中的shadow renderer,思路上也不同
利益相關:
前段時間寫了一個較為完整的app,已上架GitHub - fakefish/Weekly75: react-native iOS版奇舞周刊ReactNative開發跨平台GitHub APP-慕課網實戰
從實現上看,主要是底層 renders 層不同,React 使用的是 Visual DOM,React Native 替換成了native 組件。
React是一種思想,Facebook對於Web Components的理解與實現。其中ReactJS是Web端,React Native是iOS端(將要出Android端)。值得注意的是React Native寫的應用是Native App,而不是Hybrid App。最後React其理念是「Learn once, write anywhere」,所以目前Web和Mobile端可能要寫兩套代碼。
推薦閱讀:
※單頁面應用,TAB選項卡太多,頁面邏輯是糅合在一起還是重新分路由?
※為何需要Angularjs、backbonejs、reactjs?
※如何評價數據流管理架構 Redux?
※Vue和React的使用場景和深度有何不同?
※Redux有哪些最佳實踐?
TAG:React |