1. 基本概念

React 是由 Facebook(现 Meta)开发的用于构建用户界面的 JavaScript 库。它采用组件化声明式的编程范式,让构建复杂的交互式 UI 变得更加简单和可维护。

2. 核心特性

组件化(Component-Based)

  • 将 UI 拆分为独立、可复用的组件
  • 每个组件管理自己的状态和逻辑
function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}

声明式(Declarative)

  • 描述 UI 应该是什么样子,而不是如何操作 DOM
  • React 负责高效地更新和渲染组件

Virtual DOM

  • 在内存中创建虚拟的 DOM 表示
  • 通过 diff 算法找出变化,最小化实际 DOM 操作
  • 提高性能和用户体验

3. 核心概念

JSX

  • JavaScript 的语法扩展,让你在 JS 中写类似 HTML 的代码
const element = <h1>Hello, World!</h1>;

Props(属性)

  • 组件间传递数据的方式,只读的
function Greeting({ name, age }) {
  return <p>Hello {name}, you are {age} years old</p>;
}

State(状态)

  • 组件内部的数据,可以改变
const [count, setCount] = useState(0);

生命周期

  • 组件从创建到销毁的各个阶段
  • 函数组件通过 useEffect 处理副作用

4. Hooks(重要特性)

useState - 状态管理

const [state, setState] = useState(initialValue);

useEffect - 副作用处理

useEffect(() => {
  // 副作用逻辑
}, [dependencies]);

useContext - 跨组件状态共享 useReducer - 复杂状态管理 useMemo/useCallback - 性能优化

5. 单向数据流

  • 数据从父组件流向子组件
  • 子组件通过回调函数与父组件通信
  • 使应用状态更可预测和调试

6. 生态系统

路由 - React Router 状态管理 - Redux、Zustand、Context API UI 库 - Ant Design、Material-UI、Chakra UI 开发工具 - React DevTools 脚手架 - Create React App、Next.js、Vite

7. 优势

学习成本相对较低 - 专注于 UI 层 灵活性强 - 可以渐进式采用 性能优秀 - Virtual DOM 和优化机制 生态丰富 - 大量第三方库和工具 社区活跃 - 持续更新和支持 就业市场好 - 需求量大

8. 适用场景

  • 单页面应用(SPA) - 复杂的 Web 应用
  • 移动应用 - React Native
  • 服务端渲染 - Next.js
  • 静态站点 - Gatsby
  • 桌面应用 - Electron + React

9. 与其他框架对比

vs Vue

  • React:更灵活,JSX 语法,单向数据流
  • Vue:更易学,模板语法,双向绑定

vs Angular

  • React:轻量级库,学习曲线平缓
  • Angular:完整框架,功能全面但复杂

10. 最新发展

React 18 新特性

  • Concurrent Features(并发特性)
  • Automatic Batching(自动批处理)
  • Suspense 改进
  • Server Components(服务端组件)