React技术栈之为什么选择react
2017-12-17 16:23
281 查看
React起源于Facebook公司的内容项目,该公司在尝试用H5来建设Instagram网站的过程中发现,对于复杂前端h5性能下降明显,在对市场的mvc框架分析后,依然无法找到满足自己需求的框架,于是决定自己开发一套,于是就有了之后的React,React于2013年开发完成后被开源,一经发布迅速吸引了广泛的关注。
React的设计思想极其独特,其核心理念-虚拟Dom思想也在陆续被其他优秀框架引入,如Angular2,同时React性能优秀,代码逻辑简单,适用面广,又能用于移动端开发的React Native,受到越来越多人的认可和使用
在保证性能的同时,用户无需关心具体某个DOM应该作何操作,而只需关系数据状态,以及相应的数据状态应该如何渲染到一个组件,除此之外的其他工作都由REACT高效自动的完成。
React的设计思想极其独特,其核心理念-虚拟Dom思想也在陆续被其他优秀框架引入,如Angular2,同时React性能优秀,代码逻辑简单,适用面广,又能用于移动端开发的React Native,受到越来越多人的认可和使用
虚拟DOM
在web开发中,我们通常面临的是动态的页面,随着用户的交互或与服务端的交互会产生的数据的变化,而数据的变化又会得的我们需要展示的内容有所变化, 以往我们是通过操作Dom元素予以调整来解决的,但频繁或复杂的DOM操作通常对性能会产生较大的影响,针对这一问题,React引入了虚拟DOM机制:由用户构建虚拟DOM,React负责将虚拟DOM渲染到浏览器中,虚拟DOM的核心思想可以概括成以下两点:提供一种更方便简洁的方式操作DOM,提升开发效率
以前我们需要直接操作DOM,操作种类繁多,写法复杂,而在React中可以用一个js对象来表示DOM结构,甚至一个组件,这个js对象可以是通过React的createElement方法,或者React的组件的构造函数来创建的,便捷易懂。保证最小化的DOM操作,保证执行效率,提升性能
使用js对象来表示DOM结构后,我们可以将js对象构造出的DOM结构树叫做虚拟DOM树,当页面发生数据变化而需要操作DOM节点时,会先扫描整个虚拟DOM树,通过比较本次与上次虚拟DOM的具体差异,然后针对实际需要变化的部分进行实际的浏览器的DOM更新。虚拟DOM存的是内存数据,计算虚拟DOM的差异带来的内存的消耗通常要远远小于多余的DOM操作的开销,所以这里选择增加一部分比较,来减小DOM渲染的开销,从而提升性能。在保证性能的同时,用户无需关心具体某个DOM应该作何操作,而只需关系数据状态,以及相应的数据状态应该如何渲染到一个组件,除此之外的其他工作都由REACT高效自动的完成。
跨平台
由于我们主要的操作对象是虚拟DOM,而无关实际的执行环境,如是否是浏览器,或浏览器的类型,所以只要有虚拟DOM到真实DOM的转换器,就可以实现真实DOM的最终呈现,从而达到跨平台的效果。如,从虚拟DOM到浏览器真实DOM的转换通过react-dom实现,从虚拟DOM到移动APP的转换工具通过react-native实现。相关文章推荐
- 学习IT技术,找培训机构为什么要选择上海达内?
- 从企业角度看,为什么要选择第三方技术服务商
- atitit.为什么技术的选择方法java超过.net有前途
- 技术选择 - 为什么我们选择CentOS而不是Debian/Ubuntu
- 为什么要选择react
- 技术选择 – 我们为什么不选择Puppet?
- 回帖整理: 为什么我认为一定的技术壁垒是值得选择的战略
- 技术上难分高下,为什么市场却选择了Java,舍弃了C#?
- WPF外包公司—技术文章推荐《企业为什么选择WPF?》
- 为什么要选择PDF技术
- 为什么2007年的图灵奖选择了模型检测技术
- 技术抉择 – 为什么我们选择戴尔DRAC企业版?
- [企业管理]如何与一个纯技术的老板合作第五篇——当初我为什么离开电信还会选择进入中科院
- 技术选择 – 我们为什么不选择Puppet?
- [心情琐记]-为什么我选择做一个程序员?【谨以此文献给初入技术之路的纯白少年】
- 为什么选择这种技术而不选择另一种技术?
- 为什么选择这种技术而不选择另一种技术?
- 技术抉择 – 为什么我们选择戴尔DRAC企业版?
- 系统工具技术选择 – 我们为什么不选择Puppet?
- 技术抉择 – 为什么我们选择戴尔DRAC企业版?