
5.3 useMemo 与 useCallback 的边界
这两个 Hook 是「引用稳定工具」,它们的成本(比较依赖 + 保存缓存 + 维护依赖数组)在「轻量计算」上会超过收益——只在「配合 memo」或「计算确实昂贵」时才值得用。

这两个 Hook 是「引用稳定工具」,它们的成本(比较依赖 + 保存缓存 + 维护依赖数组)在「轻量计算」上会超过收益——只在「配合 memo」或「计算确实昂贵」时才值得用。

React.memo 是一个「高阶组件」,它对 props 做浅比较(Object.is 逐项),相等就跳过该组件的重渲染——但它只在所有 props 引用都稳定时才生效,而且拦不住 Context 更新。

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

优化前必须先测量——用 React DevTools Profiler 找到「哪些组件渲染次数多、耗时长、为什么渲染」,再用浏览器 Performance 面板看非 React 的部分(布局、绘制、长任务)。

一次更新的完整链路是「updateContainer 建更新 → scheduleUpdateOnFiber 标记 + 调度 → ensureRootIsScheduled 选优先级并交给 Scheduler → performConcurrentWorkOnRoot 在时间片里跑 workLoop…

Suspense 不只是「显示 fallback」——它背后是一套调度机制:挂起会被登记为「挂起的车道(suspendedLanes)」并监听 promise 完成(ping),而是否显示 fallback 取决于「这次更新是不是 transition」(transition 中挂起会保留旧内容)。

React Compiler 是一套「把 React 代码降到一个可分析的中间表示(HIR + SSA),识别出『哪些计算依赖响应式输入』,再自动插入 useMemoCache 读写」的编译管线——它的核心概念是「Reactive Scope(响应式作用域)」,而不是「给每个变量加 useMemo」…

PPR 把「页面级的静态/动态取舍」变成「页面内部的取舍」——构建时预渲染出「静态外壳」,请求时立刻从 CDN 返回它,同时把标记为「洞(holes)」的动态部分流式填充进去;于是「TTFB 像 SSG,数据像 SSR」。


Server Components 的本质是「组件在服务端执行,产出的不是 HTML,而是一份可流式传输的『UI 描述』(Flight payload)」——客户端拿到它之后,才把这份描述渲染成 DOM;它与 SSR 回答的是两个不同问题,因此可以叠加使用。

React 19 的主线是「把异步与表单做成一等公民」——Actions(useActionState / useFormStatus / useOptimistic)、use API、ref 作为普通 prop、文档元数据提升;
最新评论
读过书不知道欧·亨利的人少。教科书上选文有
这小生活不错呀
不错,必须顶一下!
看着你还在坚持,很好
看来忙了也没时间更新博客了
NIce。学习了。。。。
网站不错!!!!
简洁实用,好文章!