React 18 的并发特性:useTransition 和 useDeferredValue 解决什么问题?
两者都是让低优先级更新不阻塞 UI 响应(并发渲染的一部分):
- useTransition:把"非紧急"更新标记为 transition,期间紧急更新(如输入)优先渲染,紧急更新完成后再提交过渡更新
- useDeferredValue:返回一个"延迟版"的值,React 会在有更高优先级任务时推迟它的重渲染
const [isPending, startTransition] = useTransition()
const [deferred] = useDeferredValue(value)
// 输入时保持响应,列表用 deferred 值渲染(可能滞后一帧)场景:大列表筛选、Tab 切换、搜索联想——避免"输入卡顿、整个页面冻结"。