react native 是基于react框架设计的,
react简介
-
react是Facebook推出的前端开发框架,本身作为mvc模式中的view层来构建UI,也可以以插件的形式应用到web应用程序的非UI部分构建中,轻松实现与其他JS框架的整合
-
react通过对虚拟DOM的操作来控制真是的DOM,从而得到页面的局部更新,提高了GPU渲染的性能,而react提出的模块化开发思路也大大提高了代码的可维护性
虚拟DOM:传统的web应用开发,一般都是通过直接操作真实的DOM来进行更新操作的,但对DOM的操作是比较昂贵的。而react为了尽可能减少对真实DOM的操作,采用了一种更强大的方式来更新DOM,代替了直接操作DOM,这就是Virtual DOM,一个轻量级的虚拟DOM。
虚拟DOM其实是react抽象出的一个对象,通过虚拟DOM来更新真实的DOM,简单来说,react在每次需要渲染的时候,会先比较当前DOM内容和待渲染内容的差异,然后再决定如何最优的更新DOM
虚拟DOM是一个JavaScript的树形结构,主要包含react的元素和模块,组件的DOM结构就是映射到对应的虚拟DOM上,react的虚拟DOM采用了batching(批处理)和高效的diff算法,采用了diff算法,可以将时间复杂度从O(N^3)降到O(N),从而提高界面构建的性能,当需要更新组件的时候,会通过diff算法寻找到要变更的DOM节点,然后更新。
总来的说,虚拟DOM的更新视图的过程可以总结为:
状态变化->计算差异(diff算法)->界面渲染
react-native简介
-
react-native(RN)是Facebook于2015年4月开源的跨平台移动应用开发框架
-
react-native的原理就是在javaScript中使用React抽象操作系统的原生UI组件代替DOM元素来渲染界面
- react-native 框架分为三层,分别是JSX环境层、虚拟DOM层、具体的平台层。而这里最重要的就是虚拟DOM层
(JSX就是Javascript和XML结合的一种格式。React发明了JSX,利用HTML语法来创建虚拟DOM。当遇到<,JSX就当HTML解析,遇到{就当JavaScript解析)
-
react-native主要运行着两个线程:主线程和javaScript引擎线程,两个线程之间通过批量化的async消息协议来通信
-
react-native 提供Flexbox布局,支持css子集。
react-native优势
- APP占用体积小
- 实现了跨平台开发
- 支持动态更新
网友评论