React 一周速通实战计划
这份计划是给“想在 7 天内快速建立 React 实战能力”的自己准备的。
目标不是把 React 所有知识点背完,而是用一周时间做到下面三件事:
- 能独立写出中小型 React 页面和组件。
- 能理解 React 的核心工作方式,不只是会复制代码。
- 能做出一个完整项目,并为后续接 Web3 / Next.js / 全栈打基础。
学习策略
这一周采用一个原则:
先把 React 当成“状态驱动 UI 的工程化方法”来学,而不是背 API。
也就是说,你每天都要围绕这几个核心问题训练:
- 数据放哪里?
- 状态怎么变化?
- 组件怎么拆?
- 副作用什么时候发生?
- 页面为什么会重新渲染?
- 这段逻辑应该放在组件里、hook 里,还是工具函数里?
如果你能把这些问题想明白,React 就真正入门了。
一周结束时的成果
一周后你至少要拿到这几个结果:
- 一个可运行的 React 项目
- 一套自己写过的组件
- 会用
props、state、useEffect、useMemo、useRef、自定义 Hook - 会做表单、列表、过滤、搜索、异步请求、状态提升
- 会做基本的项目结构拆分
- 能说清楚 React 的渲染、依赖、闭包、受控组件这些高频概念
总体安排
建议每天投入 5 - 8 小时,分成三段:
- 上午:学核心概念 + 小练习
- 下午:做当天模块功能
- 晚上:复盘 + 手写一遍关键代码 + 输出笔记
如果哪天时间不够,优先保证“写代码”和“复盘”,视频或文章反而可以少一点。
Day 1:React 基础心智模型
目标
先建立 React 的最小正确理解。
必学内容
- React 是什么:声明式 UI、组件化、状态驱动视图
- Vite 创建 React 项目
- JSX 语法
- 组件
props- 事件绑定
- 条件渲染
- 列表渲染
key的作用
你今天必须会
- 独立创建一个 React 项目
- 写多个函数组件
- 父组件给子组件传值
- 用数组渲染列表
- 理解为什么列表不能乱用索引当
key
实战任务
做一个“学习任务清单”静态版页面:
- 顶部标题区
- 今日学习卡片
- 学习任务列表
- 完成状态标签
- 一个简单的筛选按钮组
今日验收标准
- 不看教程,自己能从零写出 5 个以上组件
- 能解释
props和普通函数参数的关系 - 能解释 React 为什么喜欢组件拆分
Day 2:状态、事件与受控组件
目标
真正开始“交互”。
必学内容
useState- 状态更新是异步感知的
- 不可变更新
- 表单输入
- 受控组件
- 状态提升
你今天必须会
- 新增任务
- 删除任务
- 切换任务完成状态
- 用输入框维护表单状态
- 把共享状态提到父组件
实战任务
把 Day 1 的静态任务清单改造成可操作版本:
- 输入框新增任务
- 点击复选框切换完成状态
- 点击按钮删除任务
- 统计“总数 / 已完成 / 未完成”
今日验收标准
- 不直接改原数组或原对象
- 能解释为什么 React 里经常写
setItems([...items, newItem]) - 能说清楚“谁拥有状态,谁就应该控制状态”
Day 3:副作用、数据请求与组件生命周期思维
目标
理解 React 中最容易让人迷糊的一块。
必学内容
useEffect- 依赖数组
- 首次渲染 / 依赖变化后的执行时机
- 清理函数
- 异步请求
- loading / error / empty 三态
你今天必须会
- 用
useEffect拉一次接口数据 - 正确处理依赖
- 避免最明显的无限循环
- 把异步状态单独管理清楚
实战任务
在项目里新增“学习资源页”或“文章列表页”:
- 从公开 API 获取数据
- 展示加载中、加载失败、空列表、正常列表
- 支持关键词搜索
今日验收标准
- 能解释
useEffect不是“生命周期替代品”这么简单 - 能说清楚副作用和纯渲染的区别
- 能举出一个依赖数组写错导致 bug 的例子
Day 4:组件设计、复用与自定义 Hook
目标
开始从“会写页面”走向“会组织代码”。
必学内容
- 组件拆分原则
- 展示组件 vs 逻辑组件
- 自定义 Hook
- 复用状态逻辑
children- 组合优于继承
你今天必须会
- 把重复逻辑抽成 Hook
- 把重复 UI 抽成基础组件
- 让项目结构更清晰
实战任务
重构前 3 天的代码:
- 抽出
useTasks - 抽出
useFetchResources - 封装
Button、Card、EmptyState、SearchBar
今日验收标准
- 项目目录不再全塞在一个文件里
- 组件职责更单一
- 能解释“为什么这个逻辑适合做成 hook”
Day 5:性能、闭包与高级 Hook 入门
目标
补上初学者经常一知半解,但面试和实战都高频出现的部分。
必学内容
- 重新渲染的触发条件
- 闭包问题
useRefuseMemouseCallback了解即可- React 调试思路
你今天必须会
- 区分“值缓存”和“DOM 引用”
- 知道什么情况下才值得做 memo 优化
- 能识别 stale closure 的基本场景
实战任务
继续优化你的项目:
- 搜索输入防抖
- 长列表统计信息缓存
- 表单聚焦
- 修一个由 effect 或闭包导致的小 bug
今日验收标准
- 不把
useMemo当银弹乱用 - 能讲清楚
useRef为什么更新不会触发渲染 - 能说出“先保证正确,再考虑优化”
Day 6:路由、页面级组织与真实项目结构
目标
把单页练习升级成真正像样的项目。
必学内容
- React Router 基础
- 多页面组织
- 布局组件
- 页面状态与局部状态
- 基础目录设计
你今天必须会
- 配置路由
- 做两个以上页面
- 用 Layout 承载公共结构
- 管理页面切换下的状态和数据
实战任务
把整个项目整理成一个“小型学习管理系统”:
- Dashboard 首页
- Tasks 页面
- Resources 页面
- Stats 页面
今日验收标准
- 路由清晰
- 页面目录清晰
- 公共组件和页面组件职责分开
Day 7:完整项目冲刺 + 总复盘
目标
把知识点真正压进一个完整作品里。
主项目建议
做一个:React 学习作战台 React Learning Dashboard
核心功能建议:
- 学习任务管理
- 每日目标展示
- 资源列表
- 搜索和筛选
- 统计面板
- 本地持久化
可选加分项
- 暗色 / 亮色主题切换
- 拖拽排序
- 标签系统
- URL 查询参数同步
- 接一个公开 API
Web3 方向扩展
如果你想和原本的 Web3 学习路线衔接,Day 7 后可以继续扩展:
- 加一个钱包地址输入框
- 查询 token 列表或 mock 资产数据
- 做一个 Portfolio 页面
- 后续再接
wagmi、viem、ethers
今日验收标准
- 项目能完整运行
- 页面可用,不是 demo 碎片
- 你能自己讲一遍项目结构
- 你能指出 3 个后续可继续重构的地方
推荐项目结构
src/
components/
ui/
tasks/
resources/
hooks/
useTasks.js
useFetchResources.js
pages/
Dashboard.jsx
Tasks.jsx
Resources.jsx
Stats.jsx
utils/
data/
App.jsx
main.jsx
每天都要做的复盘
每天结束时,固定回答这 5 个问题:
- 今天最重要的 React 概念是什么?
- 今天写的代码里,状态放得合理吗?
- 今天哪个 bug 最能暴露我理解不够?
- 如果重写一次,我会怎么拆组件?
- 明天开始前,我最该补的一个点是什么?
这周不要踩的坑
- 不要只看不写
- 不要把所有内容挤在一个组件里
- 不要一上来追求高级状态管理
- 不要见到 Hook 就背 API,不理解触发时机
- 不要把“能跑”误认为“学会”
学完这一周之后怎么接
推荐下一步顺序:
- React 深入补齐:渲染机制、状态管理、错误边界、性能优化
- 工程化:ESLint、Prettier、模块拆分、组件规范
- Next.js
- TypeScript + React
- 接 Web3 前端栈:
viem、wagmi、钱包连接、链上读取
配套执行文档
我另外在仓库里补了一份执行手册和示例项目记录:
后面可以直接基于那份文档继续补代码、补练习和记录每天的进度。