ReactNative 概述

xg48 9年前發布 | 29K 次閱讀 移動Web開發框架 移動開發 ReactNative

近期看了下React Native ,整理了下

簡介

  • 支持平臺:Native App(IOSAndroid)
  • 開發語言:JSXJavaScriptCoffee ScriptType Script
  • IDE:Nuclide
  • </ul>

    此外,非死book還開源了對應的IDE(Nuclide)。Nuclide具有能夠開發基于Hack的Web應用、支持React和React Native開發、集成了構建工具Buck、集成了JavaScriot類型檢查器Flow等特征

    </blockquote>

    上線APP

    • 非死book Groups IOS
    • 非死book Ads Manager
    • F8
    • </ul>

      主要特性

      • 支持原生iOS組件

        通過使用React Native,開發者能夠使用iOS環境下的標準組件(如UITabBarUINavigationController)來開發原生應用,這就能夠保證開發出來的應用在多個平臺亦能保持始終如一的外觀、風格,從而提高了應用產品的用戶體驗和品質;

        </blockquote> </li>

      • 支持異步執行

        JavaScript應用代碼和原生平臺之間的所有操作都是異步執行的,原生模塊還可以使用額外的線程,從而利用React Native開發出來的應用性能比較高(運行流暢和反應快)。此外,開發者還能夠在模擬器或者物理設備上運行應用的同時利用Chrome Developer Tools調試JavaScript代碼;

        </blockquote> </li>

      • 觸摸操作

        React Native實現了一個類似iOS平臺下的響應系統,還提供了高級的組件如TouchableHighlight等;

        </blockquote> </li>

      • 引入了Flexbox布局模型和樣式

        Flexbox布局模型有利于構建常見的UI布局,如stacked和nested boxes布局。React Native還支持常見的Web樣式,如fontWeight、font-size等。樣式表(StyleSheet)抽象提供了一種優化機制來聲明組件所用到的所有樣式和布局;

        </blockquote> </li>

      • 具有Polyfills功能

        Polyfills功能是的開發者編寫單獨應用的代碼而不用擔心其他瀏覽器原生是不是支持。React Native專注于改變試圖(Views)代碼編寫的方式,開發者能夠使用npm安裝JavaScript Library,并將這些Library融入React Native,如 XMLHttpRequest、window.requestAnimationFrame等

        </blockquote> </li>

      • 較強的可擴展性

        設計React Native主要是為了使得開發者使用常規的原生視圖組件擴展和模塊就可以開發出一個完整的應用,開發者能夠復用已經構建的任何應用或者組件,并且還能夠引入自己喜愛的原生Library。
        ReactNative 組件

        </blockquote> </li> </ul>

        運行原理

        React Native 繼承了 React.js 的虛擬 DOM 的思想,只不過這次變成了虛擬 View。事實上這個框架提供了一組 native 實現的 view (在 iOS 平臺上是 RCT 開頭的一系列類)。我們在寫 JavaScript (更準確地說,對于 React Native,我們寫的是帶有 XML 的 JavaScript:JSX) 時,通過將虛擬 View 添加并綁定到注冊的模塊中,在 native 側用 JavaScript 運行環境 (對于 iOS 來說也就是 JavaScriptCore) 執行編譯并注入好的 JavaScript 代碼,獲取其對 UI 的調用,將其截取并橋接到 native 代碼中進行對應部件的渲染。而在布局方面,依然是通過 CSS 來實現的。

        React Native通信機制詳解

        React Native 初探

        </blockquote>

        態度

 本文由用戶 xg48 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!