Token导航 LogoToken导航TokenDH.com
研究检索操作浏览器github未标认证来源可访问clear审计通过

react-performance-optimizationReact 性能 optimization

Agent Skill

用于辅助前端页面、组件、样式和交互逻辑的开发与维护。它适合让 Agent 生成或审查 React、Next.js、Vue、Tailwind、CSS 等相关代码,整理组件结构,或定位布局和性能问题。使用时需要结合项目现有设计系统、路由和构建方式,避免只生成孤立片段;涉及页面改动时,应配合本地预览和构建检查确认视觉效果。

总安装

26,928

周安装

1,128

GitHub Stars

15

下载量

8,712
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

3

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:react-performance-optimization(React 性能 optimization)
来源仓库:https://github.com/nickcrew/claude-ctx-plugin
仓库路径:skills/react-performance-optimization
安装命令:
npx skills add https://github.com/nickcrew/claude-ctx-plugin --skill react-performance-optimization
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/nickcrew/claude-ctx-plugin --skill react-performance-optimization

简介

用于优化 React 应用程序性能的记忆化、代码分割和虚拟化模式。

  • 涵盖四种核心优化技术:记忆化(React.memo、useMemo、useCallback)、使用惰性/挂起进行代码分割、大型列表的虚拟化以及最小化渲染级联的状态管理策略
  • 包括 React 18+ 并发功能(useTransition、useDeferredValue),以提高响应能力和感知性能
  • 使用 React DevTools Profiler 提供分析工作流程,以识别优化前后的瓶颈,重点是衡量影响而不是过早优化
  • 记录常见的反模式(过度记忆、破坏记忆的内联对象、基于索引的键),并包括涵盖分析、优化目标和验证步骤的性能检查表

SKILL.md

React Performance Optimization

Expert guidance for optimizing React application performance through memoization, code splitting, virtualization, and efficient rendering strategies.

When to Use This Skill

  • Optimizing slow-rendering React components
  • Reducing bundle size for faster initial load times
  • Improving responsiveness for large lists or data tables
  • Preventing unnecessary re-renders in complex component trees
  • Optimizing state management to reduce render cascades
  • Improving perceived performance with code splitting
  • Debugging performance issues with React DevTools Profiler

Core Concepts

React Rendering Optimization

React re-renders components when props or state change. Unnecessary re-renders waste CPU cycles and degrade user experience. Key optimization techniques:

  • Memoization: Cache component renders and computed values
  • Code splitting: Load code on demand for faster initial loads
  • Virtualization: Render only visible list items
  • State optimization: Structure state to minimize render cascades

When to Optimize

  1. Profile first: Use React DevTools Profiler to identify actual bottlenecks
  2. Measure impact: Verify optimization improves performance
  3. Avoid premature optimization: Don't optimize fast components

Quick Reference

Load detailed patterns and examples as needed:

TopicReference File
React.memo, useMemo, useCallback patternsskills/react-performance-optimization/references/memoization.md
Code splitting with lazy/Suspense, bundle optimizationskills/react-performance-optimization/references/code-splitting.md
Virtualization for large lists (react-window)skills/react-performance-optimization/references/virtualization.md
State management strategies, context splittingskills/react-performance-optimization/references/state-management.md
useTransition, useDeferredValue (React 18+)skills/react-performance-optimization/references/concurrent-features.md
React DevTools Profiler, performance monitoringskills/react-performance-optimization/references/profiling-debugging.md
Common pitfalls and anti-patternsskills/react-performance-optimization/references/common-pitfalls.md

Optimization Workflow

1. Identify Bottlenecks

# Open React DevTools Profiler
# Record interaction → Analyze flame graph → Find slow components

Look for:

  • Components with yellow/red bars (slow renders)
  • Unnecessary renders (same props/state)
  • Expensive computations on every render

2. Apply Targeted Optimizations

For unnecessary re-renders:

  • Wrap component with React.memo
  • Use useCallback for stable function references
  • Check for inline objects/arrays in props

For expensive computations:

  • Use useMemo to cache results
  • Move calculations outside render when possible

For large lists:

  • Implement virtualization with react-window
  • Ensure proper unique keys (not index)

For slow initial load:

  • Add code splitting with React.lazy
  • Analyze bundle size with webpack-bundle-analyzer
  • Use dynamic imports for heavy dependencies

3. Verify Improvements

# Record new Profiler session
# Compare before/after metrics
# Ensure optimization actually helped

Common Patterns

Memoize Expensive Components

import { memo } from 'react';

const ExpensiveList = memo(({ items, onItemClick }) => {
  return items.map(item => (
    <Item key={item.id} data={item} onClick={onItemClick} />
  ));
});

Cache Computed Values

import { useMemo } from 'react';

function DataTable({ items, filters }) {
  const filteredItems = useMemo(() => {
    return items.filter(item => filters.includes(item.category));
  }, [items, filters]);

  return <Table data={filteredItems} />;
}

Stable Function References

import { useCallback } from 'react';

function Parent() {
  const handleClick = useCallback((id) => {
    console.log('Clicked:', id);
  }, []);

  return <MemoizedChild onClick={handleClick} />;
}

Code Split Routes

import { lazy, Suspense } from 'react';

const Dashboard = lazy(() => import('./Dashboard'));
const Reports = lazy(() => import('./Reports'));

function App() {
  return (
    <Suspense fallback={<Loading />}>
      <Routes>
        <Route path="/" element={<Dashboard />} />
        <Route path="/reports" element={<Reports />} />
      </Routes>
    </Suspense>
  );
}

Virtualize Large Lists

import { FixedSizeList } from 'react-window';

function VirtualList({ items }) {
  return (
    <FixedSizeList
      height={600}
      itemCount={items.length}
      itemSize={80}
      width="100%"
    >
      {({ index, style }) => (
        <div style={style}>{items[index].name}</div>
      )}
    </FixedSizeList>
  );
}

Common Mistakes

  1. Over-memoization: Don't memoize simple, fast components (adds overhead)
  2. Inline objects/arrays: New references break memoization (config={{theme: 'dark'}})
  3. Missing dependencies: Stale closures in useCallback/useMemo
  4. Index as key: Breaks reconciliation when list order changes
  5. Single large context: Causes widespread re-renders on any update
  6. No profiling: Optimizing without measuring wastes time

Performance Checklist

Before optimizing:

  • Profile with React DevTools to identify bottlenecks
  • Measure baseline performance metrics

Optimization targets:

  • Memoize expensive components with stable props
  • Cache computed values with useMemo (if actually expensive)
  • Use useCallback for functions passed to memoized children
  • Implement code splitting for routes and heavy components
  • Virtualize lists with >100 items
  • Provide stable keys for list items (unique IDs, not index)
  • Split state by update frequency
  • Use concurrent features (useTransition, useDeferredValue) for responsiveness

After optimizing:

  • Profile again to verify improvements
  • Check bundle size reduction (if applicable)
  • Ensure no regressions in functionality

Resources

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Claude Code

25.36%
按下载量换算2,209

OpenCode

20.64%
按下载量换算1,798

Antigravity

18.93%
按下载量换算1,649

Gemini CLI

12.12%
按下载量换算1,056

github-copilot

7.77%
按下载量换算677

Codex

3.66%
按下载量换算319

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。

来源信息

继续浏览同类 Skills