首页 > IT职业 > IT生活 > 重谈react优势——react技术栈回顾
react刚刚推出的时候,讲react优势搜索结果是几十页。
现在,react已经慢慢退火,该用用react技术栈的已经使用上,填过多少坑,加过多少班,血泪控诉也不下千文。
今天,再谈一遍react优势,WTF?
React的收益有哪些?React的优势是什么?react和vue、angularJS等其它框架对比优势?
而作为总结回顾。react在工程实践中,带来哪些思想上的质变?
virtual dom虚拟DOM概念
它并不直接对DOM进行操作,引入了一个叫做virtual dom的概念,安插在javascript逻辑和实际的DOM之间,好处是减少DOM操作,减少DOM操作的目的是提高浏览器的渲染性能。
虚拟dom就中小型项目而言,的确从表象上看不出太多的优势,因为它解决的是底层的dom渲染,IO开销问题。但是想想facebook的体量,不难猜出react的诞生是为了解决更复杂更大型的项目开发和管理的。
实际上React和Vue其实也在操作DOM,只是比较高效地在操作DOM而已,虚拟DOM其实最终也会映射到真实DOM,虽然虚拟DOM只会将变化的部分更新到真实DOM,但实际上直接操作DOM也可以通过某些方式去优化,那么:
1、操作data,不直接操作DOM有什么好处?
更少的代码做更多的事。
2、操作data会给DOM操作带来什么不好的地方吗?
不会,但是不是所有功能“使用操作data”都可以代替的。
3、会不会比直接操作DOM存在什么难度?
不会有难度,但是思维需要有一些转变。
JSX虽然做了抽象视图,但她是声明式API,能够保证你看一眼就知道组件树的结构,譬如:
| 1 |
这结构还算清楚吧,基本一眼就知道这个一个面板由输入框、列表、摘要组成,而且布局也清楚了,自上而下。而且,通过查看一个源文件就可以知道你的组件将会如何渲染。这是最大的好处,尽管这和 Angular 模板没什么不同。具体参看:ReactJS For Stupid People
之前写UI的时候往往为了性能,要设计很多DOM的操作逻辑,用了react之后,这些都不给你做了,由他的state跟props来传递给VDOM,很省事,更专注于UI层面。
学会了react以及这个JSX语法,你不光可以通过react写web;也可以通过react-native写ios或者android的应用;甚至可以通过react-blessed写terminal可视化应用;当然也可以通过react-native-desktop写桌面应用。因为JSX这种声明式语法实际是在构建一个抽象的视图层,这种抽象可以通过不同适配器适配到各种显示终端,这总够屌吧?
unidirectional data flow-单向数据流
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/3789/viewspace-2811413/ ,如需转载,请注明出处,否则将追究法律责任。