React 是一个用于构建用户界面的 JavaScript 库,由 Facebook 开发并开源。它专注于通过组件化方式高效构建复杂的 UI,尤其适合单页应用(SPA)开发。React 的核心思想是"声明式编程",开发者只需描述 UI 的最终状态,React 会自动处理 DOM 更新。
核心特性
虚拟 DOM
React 通过虚拟 DOM(Virtual DOM)优化渲染性能。当状态变化时,React 会先在内存中生成虚拟 DOM 树,与旧树对比差异(Diffing 算法),最后仅更新真实 DOM 的必要部分。
组件化
UI 被拆分为独立可复用的组件,每个组件管理自身状态(State)和接收外部数据(Props)。组件分为函数组件和类组件,现代 React 推荐使用函数组件配合 Hooks。
JSX 语法
JSX 是 JavaScript 的语法扩展,允许在代码中直接编写类似 HTML 的结构。例如:
jsx
const element = <h1>Hello, React!</h1>;
JSX 最终会被编译为 React.createElement() 调用。
生态系统
React 通常与以下工具配合使用:
- 状态管理:Redux、MobX、Context API
- 路由:React Router
- 构建工具:Webpack、Vite
- 服务端渲染:Next.js
示例代码
以下是一个简单的函数组件示例:
jsx
import React, { useState } from 'react';
function Counter() {
const [count, setCount] = useState(0);
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>
Click me
</button>
</div>
);
}
export default Counter;
适用场景
- 需要高交互性的前端应用(如社交媒体、仪表盘)
- 跨平台开发(通过 React Native 构建移动应用)
- 需要频繁数据更新的动态页面
React 的灵活性和丰富的社区支持使其成为现代前端开发的主流选择之一。