React是一个用于构建用户界面的JavaScript库。React是一套UI引擎,是DOM的抽象层,并不是web应用的完整解决方案。它遵循组件设计模式、声明式编程范式和函数式编程的概念,使用虚拟DOM有效的操作DOM,并且遵循从高阶组件到低阶组件的单向数据流,从而使前端应用程序达到高效。
主要特点:
1)声明式设计
声明式编程关注的是你要做什么,而不是如何做。我们就需要根据逻辑的计算来声明要显示的组件,而不是显式地定义步骤,它没有描述控制流的步骤,即可以轻松描述应用。
2)高效性
虚拟DOM,不总是直接操作DOM;使用DOMdiff算法,最小化页面重绘。
3)灵活性
在React里,可以把一切理解为JS,这样操作就少了很多束缚;并且可以配合其它库和框架一起使用,想咋写就咋写。
4)组件
React中一切都是组件。可以将应用程序的整个逻辑分解为小的单个组件,然后将其复用到其它项目和应用中。
5)单向数据流
React是单向数据流,数据主要从父节点传递到子节点(通过props),即父级的某个props改变了,React会重新渲染所有的子节点。
优势:
虚拟DOM加diff算法减少DOM操作提高渲染性能;
使用声明式语法JSX重新定义视图开发;
代码更加模块化,复用率高;
单向数据流,可预计可控制;
将DOM操作抽象为状态的改变。