FORMA

React 基础

React 是用于构建用户界面的 JavaScript 库(UI 库),由 Meta 维护。当前文档以 React 18+ 为主线(createRoot、并发特性、Hooks)。前置:JavaScript 基础HTMLCSS

可与 Vue 基础 对照学习:二者都组件化,但 React 以 函数组件 + Hooks 为默认写法,更新由 setState 触发重新渲染。

React 是什么、不是什么

说明
用组件描述 UI;用状态驱动界面更新;可与任意后端、路由、状态库组合
不是完整框架(路由、数据获取需选配库);模板语言(使用 JSXcreateElement

应用入口(React 18+)

tsx
import { StrictMode } from "react";
import { createRoot } from "react-dom/client";
import App from "./App";

const root = createRoot(document.getElementById("root")!);
root.render(
  <StrictMode>
    <App />
  </StrictMode>,
);
  • createRoot:React 18 起推荐 API;替代已弃用的 ReactDOM.render
  • StrictMode:开发模式下帮助发现不安全生命周期、过时的 API 等;会故意双重调用部分函数(如部分 Effect)以暴露副作用问题,仅开发环境,不影响生产构建行为(见 官方 StrictMode)。

函数组件

tsx
import { useState } from "react";

type CounterProps = {
  initial?: number;
};

export function Counter({ initial = 0 }: CounterProps) {
  const [count, setCount] = useState(initial);
  return (
    <button type="button" onClick={() => setCount((c) => c + 1)}>
      {count}
    </button>
  );
}

类组件仍受支持,但新项目应使用函数组件 + Hooks(见 Hooks)。

核心概念速览

概念说明
组件可复用的 UI 单元;Props 只读,由父传入
State组件内部可变数据;更新须用 setState / dispatch,触发重新渲染
单向数据流数据自父向子通过 props 流动;子通过回调通知父
虚拟 DOMReact 在内存中计算 UI 树,再与真实 DOM 协调(见 渲染
Hooks在函数组件中使用 state、副作用、Context 等的 API

常用生态(选配)

用途
React Router客户端路由
Redux Toolkit可预测的全局状态(复杂应用)
Zustand轻量全局状态
TanStack Query服务端状态 / 请求缓存
Vite开发与构建(@vitejs/plugin-react
Next.jsReact 全栈 / SSR 框架(可选)

详见 状态管理路由生态

本目录学习路径

主题文档
语法jsx
组件components
Hooksstateeffectcontextmemo
全局状态state
路由router
渲染原理rendering
性能performance/buildruntime
工程projecttypescripttest

参考文献

以下链接在编写时均可正常访问:

资料说明
React 官方文档中文
React:安装创建项目
React:思维模型组件拆分

Series

react

1 / 16