React简介

Facebook 2013开源在github上的js库

把用户的界面抽象成一个个的组件,组件的组合得到丰富的交互页面

JSX语法让复用组件变得非常容易,结构清晰明了

组件的抽象,让代码和真实的渲染目标隔离开来,使得可以在浏览器渲染DOM,还可以在移动原生应用开发


专注视图层

React并不是完整的MVC/MVVM的框架,专注提供简洁清晰的View视图层解决方案
与模板引擎不同,React除了解决视图层问题,还是一个包括view和controller的库
复杂应用根据应用场景自行选择业务层框架,搭配Flux, Redux...来使用
React只提供组件化相关的少量的API
React尽可能的让用户使用原生的js开发


Virtual DOM

真实的页面对应一个DOM树,传统开发模式中,每次更新页面需要手动操作DOM
DOM操作,性能消耗非常大,也让项目变得难以维护
React把真实DOM转成JS对象树,即VirtualDom
每次的数据更新,重新计算VirtualDom,和上一次生成的VirtualDom进行对比,对发生变化的部分批量更新
VirtualDom最大的好处在于方便和其他平台的集成,react组件可以映射成原生的控件,平台可以决定输出时是webDom,
还是安卓控件或者IOS控件


函数式编程

过去以命令式编程,解决的是做什么的问题
函数式编程对应的是声明式的编程
当我们操作数组的每个元素并返回一个新数组时,如果是计算机的思考方式,则是需要一个新数组,然后遍历原数组,并计算赋值;
如果是人的思考方式,则是构建一个规则,这个过程就变成构建一个 f 函数作用在数组上,然后返回新数组。这样,计算可以被重复利用。
React 把过去不断重复构建 UI 的过程抽象成了组件,且在给定参数的情况下约定渲染对应的 UI 界面
React 能充分利用很多函数式方法去减少冗余代码
由于它本身就是简单函数,所以易于测试