React.xmind

一、组件基础

1. 如何解释 React 是什么

React 是通过组件化的方式解决视图层开发复用的问题,本质是一个组件化框架。

2. 用途

React 的用途是构建视图。由于 React 虚拟 DOM 的关系,在适用场景上远比传统框架更为广泛:

  • 首先无论是 PC 网页还是移动端网页,都是完全支持的;
  • 其次由于 React Native,也可以用于开发 iOS 与 Android 应用;
  • 还有 React 360 可以开发 VR 应用;
  • 冷门儿的如 ink,也可以使用 React 开发命令行应用。

3. 核心思路

React 的核心思路有三点,分别是声明式、组件化与通用性

3.1 声明式

声明式编程的优势在于直观,可以做到一目了然,也便于组合。

3.2 组件化

组件化可以降低系统间功能的耦合性,提高功能内部的聚合性。

3.3 通用性

React 将 DOM 抽象为虚拟 DOM,开发者并不会直接操作 DOM。正因为有这样一层封装,使得 React 不再局限于 Web 开发,而能走向更宽广的平台,出现更繁荣的生态。无论是 Native、VR 还是 Shell 命令,只要兼容虚拟 DOM 层,那么都可以直接运行 React。

3.4 优缺点

React 的优点:声明式、组件化与通用性。
React 的缺点:学习使用上有比较高的成本。

小结:

它的核心设计思路有三点,分别是声明式、组件化与 通用性。
声明式的优势在于直观与组合。
组件化的优势在于视图的拆分与模块复用,可以更容易做到高内聚低耦合。
通用性在于一次学习,随处编写。比如 React Native,React 360 等, 这里主要靠虚拟 DOM 来保证实现。
这使得 React 的适用范围变得足够广,无论是 Web、Native、VR,甚至 Shell 应用都可以进行开发。这也是 React 的优势。
但作为一个视图层的框架,React 的劣势也十分明显。它并没有提供完整的一揽子解决方 案,在开发大型前端应用时,需要向社区寻找并整合解决方案。虽然一定程度上促进了社区的繁荣,但也为开发者在技术选型和学习适用上造成了一定的成本。