React Hooks 实战技巧精讲
📘 30 章
完整版
01
Hooks 初体验
思维转变
为什么要有 Hooks?从 Class 组件到函数组件的思维转变,我的第一个自定义 Hook。
02
useState 深度解析
惰性初始化
状态更新的奥秘,惰性初始化的妙用,与 Class 组件的 setState 有何不同?
03
useEffect 生命周期
模拟三阶段
告别 Class 的生命周期函数,用 Effect 模拟 componentDidMount、componentDidUpdate、componentWillUnmount。
04
useEffect 依赖数组
避坑指南
依赖项怎么选?空数组、不传依赖、传引用类型,这些坑我都踩过。
05
useRef 的妙用
跨渲染保险箱
不只是获取 DOM,更是跨渲染周期的“保险箱”,解决闭包陷阱的利器。
06
useContext 与全局状态
轻量状态
告别 Prop Drilling,用 Context 实现轻量级状态管理,但别滥用。
07
useReducer 管理复杂状态
类似 Redux
当 useState 不够用时,像 Redux 一样管理你的组件状态。
08
useMemo 性能优化
缓存计算
缓存计算结果,避免无意义的重复渲染,但别什么都往里塞。
09
useCallback 与函数稳定性
引用相等
防止子组件不必要重渲染,理解引用相等性。
10
自定义 Hooks 实战(一)
useWindowSize
封装 useWindowSize、useDebounce、useThrottle,让逻辑复用像呼吸一样自然。
11
自定义 Hooks 实战(二)
useRequest
封装 useRequest 处理异步请求,loading、error、data 状态一网打尽。
12
Hooks 中的闭包陷阱
陈旧状态
为什么我的 state 总是旧的?理解 JavaScript 闭包在 Hooks 中的表现。
13
useLayoutEffect 与 useEffect
同步异步
同步还是异步?什么时候该用 useLayoutEffect?
14
useImperativeHandle & forwardRef
暴露方法
向父组件暴露子组件的方法,像 ref 一样灵活。
15
useDebugValue 调试
DevTools
在 React DevTools 中优雅地展示你的 Hook 信息。
16
Hooks 与 TypeScript(一)
基础类型
为 useState、useRef、useEffect 添加类型,告别 any。
17
Hooks 与 TypeScript(二)
泛型妙用
自定义 Hooks 的类型定义,泛型的妙用。
18
Hooks 中的事件处理
内存泄漏
正确绑定事件、清理事件、防止内存泄漏。
19
Hooks 与动画
高性能
结合 useRef 和 requestAnimationFrame 实现高性能动画。
20
Hooks 与 WebSocket
实时通信
用自定义 Hook 封装实时通信,自动重连、心跳检测。
21
Hooks 与 localStorage
持久化
封装 useLocalStorage,实现数据持久化,状态自动同步。
22
Hooks 中的错误边界
Error Boundary
用 Error Boundary 捕获错误,但 Hooks 本身不支持,怎么办?
23
Hooks 与 React Router
路由 Hooks
在函数组件中使用路由 Hooks,useNavigate、useParams、useLocation。
24
Hooks 与 Redux
useSelector
用 useSelector 和 useDispatch 替代 connect,更简洁的状态管理。
25
Hooks 性能优化实战
三剑客
React.memo、useMemo、useCallback 三剑客的正确使用姿势。
26
Hooks 中的条件调用
调用规则
为什么 Hooks 不能放在条件语句中?理解 Hooks 的调用规则。
27
Hooks 与第三方库集成
D3 / Chart.js
如何将非 React 库(如 D3、Chart.js)用 Hooks 优雅封装。
28
Hooks 测试指南
@testing-library
用 @testing-library/react-hooks 测试你的自定义 Hooks。
29
Hooks 常见模式与反模式
10+5
从实际项目中总结的 10 个最佳实践和 5 个常见坑。
30
从零搭建 Hooks 项目
企业级
项目结构、代码规范、性能监控,打造企业级 Hooks 应用。