04 · React 生态
受控组件与非受控组件有什么区别?怎么选?
列表渲染的 key 有什么用?为什么不建议用 index 当 key?
React 的合成事件(SyntheticEvent)是什么?和原生事件有何不同?
JSX 的本质是什么?它和 createElement 是什么关系?
什么是声明式 UI 和命令式 UI?React 的单向数据流是什么?
useState 是怎么工作的?批处理与函数式更新讲清楚了吗?
useEffect 的依赖、清理与执行时机,跟 useLayoutEffect 有什么区别?
useMemo、useCallback、React.memo 分别解决什么问题,怎么配合?
useRef 有哪些用途?跟 useState 有什么区别?
自定义 Hook 如何实现逻辑复用?它共享的是状态还是逻辑?
为什么 Hooks 不能写在条件 / 循环里?从链表实现讲清楚
useReducer、useContext、useTransition、useDeferredValue 各自解决什么问题?
虚拟 DOM 是什么?React 的 Diff 算法怎么做到 O(n)?
Fiber 架构解决了什么?可中断渲染与双缓冲是怎么实现的?
React 一次更新的完整流程?render 阶段与 commit 阶段做了什么?
什么是调和(reconciliation)?Lane 优先级模型是怎么调度更新的?
React 18 带来了哪些并发特性?startTransition / useDeferredValue 怎么用?
React 19 有哪些新特性?Actions / use() / ref as prop 怎么用?
Redux、Zustand、Jotai 怎么选?三者原理有何不同?
React Context 有什么性能问题?怎么优化?
React Query / SWR 怎么做缓存与竞态处理?
CSR / SSR / SSG / ISR 有什么区别?分别适用什么场景?
Next.js App Router 与 RSC(React 服务端组件)是怎么工作的?
什么是水合(hydration)?hydration mismatch 是怎么产生的、怎么修?
React 有哪些性能优化手段?
长列表性能怎么优化?什么是虚拟列表?
组件为什么会重渲染?如何定位多余的重渲染?