框架作用的平台不同
RN
是由React
衍生出来的,两种框架都是用JSX
开发语法,但是RN
是用来开发真正原生渲染的iOS和Andriod移动应用的JS框架,而React是将浏览器作为渲染平台。
渲染周期
react 组件挂载过程 -> 重新渲染过程。
React
的渲染周期开始于react组件挂载到DOM之后,接着React进入渲染周期并根据需要渲染组件。在渲染阶段,React将开发者在return中返回的HTML标记直接按需渲染到页面上。React Native
生命周期与React基本相同,在渲染上因为React Native
依赖于桥接,并不在UI主线程运行,它可以在不影响用户体验的前提下执行这些异步调用。
创建组件
当编写Web环境的React的时候,视图最终需要渲染成普通的HTML元素;
而在React Native中,所有元素都会被平台指定的React组件替换,例如在iOS中,<View>
组件被渲染成UIView
,而在Android平台,会被渲染成View
。
原生的样式
在Web中,使用CSS样式为React组件添加样式已经是开发过程中不可获取的一部分了。React通常不影响我们编写CSS的方式,并且它确实让样式的动态创建更加容易(通过state和props),除此之外,React基本上不关心我们如何处理样式的。
非Web平台上有大量的方法来处理布局和样式.
我们使用React Native
时,只需要用一种标准的方法来处理样式,React和宿主平台之间的桥接包含了一个缩减版CSS子集的实现,这个CSS子集主要通过flexbox进行布局,做到了尽量简化,而不是去实现所有的CSS规则。有别于Web平台,CSS的支持程度因浏览器而不同,React Native则做到了样式规则的一致。
宿主平台接口
数据存储、地理服务、操控硬件设备