运行环境

RN使用javascript进行编写,基于React api,底层有两套不同的环境,在IOS平台使用 safira 所使用的JavaSript引擎也就是javaScriptCore进行编译解释;在Android平台上则使用V8引擎进行编译。最终达到使用JavaSript来访问移动端原生api的功能。

ReactNative的整体框架理解

UI 部分:RN已经编写了许多核心组件和原生组件可供使用
状态部分:React更新已经渲染的元素;因为React 元素是不可变对象。一旦被创建也就是在ReactDOM.render()之后你就无法更改它的子元素或者属性。除非重新调用ReactDOM.render()
React还提供了一个有状态的组件:state, 每个组件都可在构造函数中创建state对象,并在组件中使用this.state()来引用,如果数据改变则使用setState函数来进行时刻改变数据来更新UI
状态提升:每个组件都有属于自己的状态state ,不能传递给其他组件,其他组件也无法更改,多个组件想要共享一个state 的时候我们就需要状态提升。也可使用rn的状态管理框架 react-redux

ReactNative最棒的地方就是组件可复用达到和java解耦的目的。
ReactNative可以用JSX(JS的语法扩展) 混编js、css、html,只关心如何用 JavaScript 构造页面,它们终将被转换成原生的 JavaScript 并创建 DOM。
ReactNative和 React的编程思路有些不同,React是以WebView为后端,操作虚拟 DOM进行视图渲染的,而ReactNative是以ios或者anroid原生控件为后端,但以React component 的方式导出进行视图渲染的。