
2.15 React 19 新 Hooks 与 Actions
React 19 围绕「表单与异步」补了一组 Hooks——use(在渲染期读 Promise / Context)、useActionState(管理提交结果与 pending)、useFormStatus(子组件读提交态)、useOptimistic(自动回滚的乐观更新);

React 19 围绕「表单与异步」补了一组 Hooks——use(在渲染期读 Promise / Context)、useActionState(管理提交结果与 pending)、useFormStatus(子组件读提交态)、useOptimistic(自动回滚的乐观更新);

依赖数组的规则是「把副作用里用到的每一个响应式值都列进去」;三类错误是「漏依赖(逻辑错误)、多依赖(性能问题)、不稳定依赖(完全失效)」,而 exhaustive-deps 的警告几乎总是对的。

压缩、裁剪、加水印、抠图、拼接都在本地完成。不限张数、不限次数,图片不会传到服务器。

闭包陷阱(stale closure)指「函数捕获了某次渲染的变量快照,之后读到的永远是那个旧值」——它是 React 里最隐蔽也最常见的一类 bug,根因是「每次渲染都是一次新的函数调用」。

读完《霍乱时期的爱情》,我合上书,脑子里久久盘旋的不是那句“一生一世”,而是费尔明娜在集市上回头看见弗洛伦蒂诺时,心里涌起的那句“一场幻觉”。我原以为这会是一个关于等待与忠贞的浪漫故事,但马尔克斯从一开始就戳破了最迷人的泡沫:我们爱的,究竟...

自定义 Hook 是「把有状态的逻辑抽出来复用」的方式——它复用的是逻辑而不是状态(每个使用它的组件都有独立的状态);命名必须以 use 开头。

useId 生成「服务端与客户端一致的唯一 ID」(用于无障碍属性关联),useSyncExternalStore 提供「订阅外部数据源」的官方姿势(避免并发渲染下的撕裂问题)。

两个 Hook 都基于「并发渲染」——把「不紧急的更新」降优先级,让「紧急更新(如输入回显)」先完成;useTransition 用于你主动触发的状态更新,useDeferredValue 用于被动接收的值。

useImperativeHandle 让子组件只暴露想暴露的命令式方法(而不是把整个 DOM 或实例交出去),配合 forwardRef 使用;它是「父组件需要调用子组件方法」这种场景的标准解法,但应该尽量少用。

useReducer 把「状态」与「如何更新状态」的规则拆开——状态在 Hook 里,更新规则写在纯函数 reducer 里;它适合「状态之间有关联、转移逻辑复杂、需要集中管理与测试」的场景。

两者都是「引用稳定工具」——useMemo 缓存计算结果,useCallback 缓存函数引用;它们的价值只在「配合 React.memo」或「计算确实昂贵」时才成立,滥用反而增加成本。
最新评论
读过书不知道欧·亨利的人少。教科书上选文有
这小生活不错呀
不错,必须顶一下!
看着你还在坚持,很好
看来忙了也没时间更新博客了
NIce。学习了。。。。
网站不错!!!!
简洁实用,好文章!