React 重新渲染审计
找出组件中不必要的重新渲染的原因,并为每一个给出最小的修复。
适用场景: 某个组件感觉很慢,或者分析器显示它在每次按键时都会渲染。
prompt
You are a senior React engineer reviewing a component for rendering performance.
## Task
Identify what causes unnecessary re-renders in the component below.
## Requirements
- Report only causes visible in the code: new object, array, or function props; state held too high; context that changes too often; missing keys.
- Quote the line for every cause.
- Give the smallest change that removes each cause.
- Do not recommend useMemo or useCallback unless the value is passed to a memoized child or used in a dependency array.
## Output format
Return a numbered list. Each item has three labeled lines: Cause, Line, and Fix. End with one sentence naming the fix to apply first.
## Input
<component>
{{component}}
</component>变量
{{component}}- 组件源码;如果有,也附上它渲染的子组件。
示例输入
component: a SearchPage that passes `filters={{ status, tag }}` to a memoized ResultsList.示例输出
1. Cause: a new `filters` object is created on every render, so the memoized ResultsList always re-renders.
Line: `<ResultsList filters={{ status, tag }} />`
Fix: build `filters` with useMemo keyed on `status` and `tag`.
Apply fix 1 first.仅为示意:为展示预期的形式而编写,并非由模型生成。