您好,登錄后才能下訂單哦!
小編給大家分享一下react和react native有哪些區別,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
react和react native的區別是:1、框架作用的平臺不同;2、工作原理有差別;3、渲染周期不同;4、react native中所有元素都會被平臺指定的react組件替換;5、宿主平臺的API不同。
區別如下:
1、框架作用的平臺不同
RN是由React衍生出來的,兩種框架都是用JSX開發語法,但是RN是用來開發真正原生渲染的iOS和Andriod移動應用的JS框架,而React是將瀏覽器作為渲染平臺。
2、工作原理的差別
Virtual DOM是介于開發者描述的視圖與實際在頁面上渲染的視圖之間。在瀏覽器上如果想渲染出來可交互的用戶界面,開發者必須操作瀏覽器的文檔對象(document object model),Virtual DOM的出現,就是為了節省這部分操作所消耗的性能。
但是Virtual DOM的巨大潛力,是在于這個抽象層,可以帶來很多可能性。
React Native的工作原理,就是調用Objective-C的API去渲染iOS組件,調用Java API去渲染Android組件,而不是渲染到DOM上。橋接使得React可調用宿主平臺開放的UI組件,React組件通過render方法返回了描述界面的標記代碼。如果是web平臺,React最終把標記代碼解析成瀏覽器的DOM;而在React Native中,標記代碼會解析成特定平臺的組件,例如<View>會表現成iOS平臺上的UIView。
3、渲染周期
React的渲染周期開始于react組件掛載到DOM之后,接著React進入渲染周期并根據需要渲染組件。在渲染階段,React將開發者在return中返回的HTML標記直接按需渲染到頁面上。
React Native生命周期與React基本相同,在渲染上因為React Native依賴于橋接,并不在UI主線程運行,它可以在不影響用戶體驗的前提下執行這些異步調用。
4、創建組件
當編寫Web環境的React的時候,視圖最終需要渲染成普通的HTML元素;而在React Native中,所有元素都會被平臺指定的React組件替換,例如在iOS中,<View>組件被渲染成UIView,而在Android平臺,會被渲染成View。
UI元素均為React的組件,而不是像<div>這樣基礎的html元素,因此在使用每一個組件的時候,都需要顯式的導入,例如:
import { DatePickerIOS } from 'react-native';
5、原生的樣式
在Web中,使用CSS樣式為React組件添加樣式已經是開發過程中不可獲取的一部分了。React通常不影響我們編寫CSS的方式,并且它確實讓樣式的動態創建更加容易(通過state和props),除此之外,React基本上不關心我們如何處理樣式的。
非Web平臺上有大量的方法來處理布局和樣式,我們使用React Native時,只需要用一種標準的方法來處理樣式,React和宿主平臺之間的橋接包含了一個縮減版CSS子集的實現,這個CSS子集主要通過flexbox進行布局,做到了盡量簡化,而不是去實現所有的CSS規則。有別于Web平臺,CSS的支持程度因瀏覽器而不同,React Native則做到了樣式規則的一致。
6、宿主平臺API
使用Web 環境的React 與React Native 最大的不同,在于宿主平臺的API。
在Web 中,我們通常要處理采納標準的不一致和碎片化所引起的問題,并且大多數瀏覽器只支持部分核心的特性。然而在React Native 中,平臺特定的API 在提供優秀原生的用戶體驗方面發揮了巨大的作用。當然,要考慮的方面還有很多。API 囊括了許多功能,從數據存儲到地理服務,以及操控硬件設備(如攝像頭)等。非常規平臺上的API 會更有趣,例如,React Native 和虛擬現實頭盔之間的API 會是什么樣的呢?
默認情況下,iOS 和Android 版本的React Native 支持許多常用的特性,甚至可以支持任何異步的本地API。React Native 讓宿主平臺API 的使用變得更加簡單和直觀,你可以在其中自由地試驗。同時,務必思考一下怎樣做才符合目標平臺的體驗,并在心里設計好交互過程。毋庸置疑,React Native 的橋接不可能暴露宿主平臺全部的API。
如果你需要使用一個未支持的特性,完全可以自己動手添加到React Native 中。另外,如果其他人已經集成,那就更好了,所以應該及時查看社區中的實現。值得注意的是,使用平臺API 也會對代碼復用有幫助。同時,實現平臺特定功能的React組件也是平臺特定的。
隔離和封裝這些組件將會給你的應用帶來更大的靈活性。當然,這對你開發Web 應用同樣奏效,如果你想共享React 和React Native 的代碼,請記住像DOM 這樣的API 在React Native 中并不存在。
以上是“react和react native有哪些區別”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。