跳到主要内容

附录 C:版本对照(18 → 19.x)

从 React 18 迁移到 19 时,最常碰到变化的速查表。

API 变化

主题React 18React 19对应章节
入口ReactDOM.render(legacy)只有 createRoot / hydrateRoot第 1 章
refforwardRef 包裹ref 进 props,函数组件直接收 props.ref第 2 章
读异步手动管理 promise + stateuse 直接在渲染里读第 16、26 章
表单手写 useState + fetchActions<form action> + useActionState第 31 章
隐藏状态Offscreen(实验)<Activity> 稳定第 28 章
effect 回调useEffectEvent(19.2)第 16 章
元数据手动 document.title<title>/<meta> 提升到 head第 32 章
资源手动 <link>preload/preinit 系列第 32 章
自动 memo手动 useMemo/memoReact Compiler 构建期自动第 24 章
RSC实验稳定第 30 章

被移除/废弃的

状态替代
ReactDOM.render / hydrate移除createRoot / hydrateRoot
字符串 ref移除ref={fn} / ref={object}
函数组件 defaultProps移除(Class 保留)默认参数
propTypes移出 react 包TypeScript / 独立方案
findDOMNode移除ref
React.createFactory移除JSX
forwardRef废弃(兼容)ref 进 props

行为收紧

变化
useRef()必须传参,缺参报错
act必须 await
element.ref 访问废弃警告(真值在 props.ref
useId 格式:r0: 改成 _r0_(19.2)
错误处理onUncaughtError / onCaughtError 成为 createRoot 正式选项

演进脉络

  • 18:并发默认(createRoot),但并发能力要你主动用。
  • 19.0use、Actions、RSC 稳定、ref 进 props、清历史包袱。
  • 19.1useActionState / useOptimistic 稳定。
  • 19.2<Activity>useEffectEvent 稳定,resume / prerender API。

完整演进叙述见第 29 章。