React 渲染的视觉指南 - 速查表

2025-05-26

React 渲染的视觉指南 - 速查表

React 组件何时会重新渲染?什么原因会导致重新渲染?又该如何避免不必要的渲染?这里有一个速查表,当你遇到这些问题时可以参考。

本文是React 渲染可视化指南系列的目录。速查表的每个部分都链接到该指南中深入探讨该主题的相应章节。


标准渲染和备忘录

默认情况下,当组件状态发生变化时,该组件及其所有子组件都会重新渲染。你可以使用 包裹 React 组件,memo以防止整个子树重新渲染。

图片描述

React 渲染的视觉指南 - 它总是重新渲染(第一章)


原始 props 与非原始 props

javascript 中的非原始值通过引用进行比较。

{display: "flex"} === {display: "flex"} // false
Enter fullscreen mode Exit fullscreen mode

在将 props 传递给 memoized 组件时,请记住这一点。当 props 发生变化时,memoized 组件会重新渲染。

图片描述

React 渲染可视化指南 - Props(第二章)


使用 useMemo 进行稳定引用

您可以使用 保存对非原始值的引用useMemo。它在重新渲染时不会改变。

图片描述

React 渲染可视化指南 - useMemo(第三章)


使用 useCallback 的稳定引用

您可以使用以下方式保存对函数的引用useCallback

图片描述

React 渲染可视化指南 - useCallback(第四章)

渲染和上下文

上下文提供程序下的组件可能应该使用memo

图片描述

React 渲染的可视化指南 - Context(第五章)


渲染和 DOM

React 组件渲染并不意味着 DOM 更新。React 足够智能,只更新 DOM 中需要更改的部分。

图片描述

React 渲染可视化指南 - DOM(第六章)


最初发表于alexsidorenko.com


有关该主题的文章:

文章来源:https://dev.to/sidkh/a-visual-guide-to-react-rendering-cheat-sheet-2482
PREV
点击复制!
NEXT
使用动态导入和交叉观察器延迟加载反应组件