一、React 概述
- React 是一个用于 构建用户页面 的 JavaScript 库
- 主要用于构建高性能及响应式用户界面
- 使用虚拟DOM并在发生变更时利用补丁安装机制只对DOM中的dirty部分进行重新渲染
- 从 MVC 角度来看,React 只是视图层(V),只负责视图的渲染,没有提供完整的 M 和 C 的功能
二、React 特点
1. 声明式
- 只需描述 UI(HTML)看起来是什么,就跟写 HTML 一样
- 负责渲染 UI,并在数据发生变化更新 UI
const jsx = <div className="app">
<h1>hello React! 动态变化数据:{count}</h1>
</div>
2. 基于组件
- 组件是 React 最重要的内容
- 组件表示页面中的部分内容
- 组件把一个完整的,抽象成一个个组件
- 组合、复用多个组件,可以实现完整的功能
3. 学习一次,随处使用
- 使用 React 可以开发 Web 应用
- 使用 React 可以开发移动端原生应用(react-native)
- 使用 React 可以开发 VR(虚拟显示) 应用(react 360)
三、优点
-
React速度很快
- 它并不直接对DOM进行操作,引入了一个叫做虚拟DOM的概念
- 安插在javascript逻辑和实际的DOM之间,性能好
-
跨浏览器兼容
- 虚拟DOM帮助我们解决了跨浏览器问题
- 它为我们提供了标准化的API,甚至在IE8中都是没问题的。
-
一切都是component
- 代码更加模块化,重用代码更容易,可维护性高。
-
单向数据流
- Flux是一个用于在JavaScript应用中创建单向数据层的架构,它随着React视图库的开发而被Facebook概念化。
-
同构、纯粹的javascript
- 因为搜索引擎的爬虫程序依赖的是服务端响应而不是JavaScript的执行,预渲染你的应用有助于搜索引擎优化。
-
兼容性好
- 比如使用RequireJS来加载和打包,而Browserify和Webpack适用于构建大型应用。
- 它们使得那些艰难的任务不再让人望而生畏。