首页 >
文章列表 > 为什么使用 useDeferredValue 却没有实现延迟效果?
为什么使用 useDeferredValue 却没有实现延迟效果?
307
2025-01-11

useDeferredValue 的应用场景
问题:useDeferredValue 的运用场景是什么?
答:useDeferredValue 的作用是延迟更新某个值的渲染,以避免频繁更新造成的页面卡顿。其运用场景包括:
为什么实现中没有延迟效果?
问题:为什么示例中使用 useDeferredValue 没有实现延迟效果,即输入仍然影响 input 的更新?
答:在示例中,当用户输入第一个字符时:
- React 优先更新 input 框
- 进入空闲时间段后,开始渲染 ShowList
- ShowList 渲染期间等待 500ms,在此期间 JS 线程被阻塞
由于 JS 为单线程且 React 依赖它,因此一旦 JS 线程被阻塞,React 就无法响应,从而导致卡顿。