
12.8 Context 为什么全量重渲染
因为 Context 的订阅粒度是整个 value(而不是「value 里的某个字段」),且它的更新直接通知消费者、不经过 props 比较——所以 React.memo 也拦不住。

因为 Context 的订阅粒度是整个 value(而不是「value 里的某个字段」),且它的更新直接通知消费者、不经过 props 比较——所以 React.memo 也拦不住。

Context 的订阅粒度是整个 value——value 一变,所有消费者都重渲染(React.memo 拦不住);优化方案按成本排序是「useMemo 稳定 value → 拆分 Context → 值与操作分离 → children 透传 → 状态库选择器」。

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

Context 的 value 一旦变化,所有消费者都会重渲染(React.memo 拦不住)——解法优先级是「拆分 Context → useMemo 稳定 value → 值与操作分离 → children 透传 → 改用带选择器的状态库」。

Context 是 React 提供的「依赖注入 / 跨层级读取」机制——它让你把值放在祖先组件上,任意深度的后代都能直接读取,从而消除「props 层层透传」。

useContext 让组件跨越任意层级读取共享值,避免「层层透传 props」;但它的代价是「Provider 的 value 一变,所有消费者都会重渲染」——所以它适合「不常变化的共享值」,不适合高频变化的状态。
最新评论
读过书不知道欧·亨利的人少。教科书上选文有
这小生活不错呀
不错,必须顶一下!
看着你还在坚持,很好
看来忙了也没时间更新博客了
NIce。学习了。。。。
网站不错!!!!
简洁实用,好文章!