Agent Skills
› AFK-surf/OpenBridge
› react-component-performance
react-component-performance
GitHub用于分析和优化React组件性能,解决慢渲染、重渲染风暴等问题。通过复现问题、定位触发源、隔离状态、稳定Props及减少计算开销,结合Profiler验证,提升UI响应速度。
Trigger Scenarios
分析React组件性能瓶颈
减少不必要的重渲染
优化列表渲染卡顿
加速UI更新
Install
npx skills add AFK-surf/OpenBridge --skill react-component-performance -g -y
SKILL.md
Frontmatter
{
"name": "react-component-performance",
"description": "Analyze and optimize React component performance issues (slow renders, re-render thrash, laggy lists, expensive computations). Use when asked to profile or improve a React component, reduce re-renders, or speed up UI updates in React apps."
}
React Component Performance
Overview
Identify render hotspots, isolate expensive updates, and apply targeted optimizations without changing UI behavior.
Workflow
- Reproduce or describe the slowdown.
- Identify what triggers re-renders (state updates, props churn, effects).
- Isolate fast-changing state from heavy subtrees.
- Stabilize props and handlers; memoize where it pays off.
- Reduce expensive work (computation, DOM size, list length).
- Validate with profiling; avoid speculative changes.
Checklist
- Measure: use React DevTools Profiler or log renders; capture baseline.
- Find churn: identify state updated on a timer, scroll, input, or animation.
- Split: move ticking state into a child; keep heavy lists static.
- Memoize: wrap leaf rows with
memoonly when props are stable. - Stabilize props: use
useCallback/useMemofor handlers and derived values. - Avoid derived work in render: precompute, or compute inside memoized helpers.
- Control list size: window/virtualize long lists; avoid rendering hidden items.
- Keys: ensure stable keys; avoid index when order can change.
- Effects: verify dependency arrays; avoid effects that re-run on every render.
- Style/layout: watch for expensive layout thrash or large Markdown/diff renders.
Optimization Patterns
- Isolate ticking state: move a timer/animation into a child component so the parent list does not re-render every tick.
- Stabilize callbacks: prefer
useCallbackfor handlers passed to memoized rows. - Split rows: extract list rows into memoized components with narrow props.
- Defer heavy rendering: lazy-render or collapse expensive content until expanded.
- Prefer derived data outside render: compute summaries with
useMemoor helper functions when inputs are stable.
Example Reference
Load references/examples.md when the user wants a concrete refactor example.
Version History
- a9ca905 Current 2026-07-24 11:34


