OfficialProgramación y desarrollogithub.com

vercel-react-best-practices

Directrices de optimización de rendimiento para React y Next.js de Vercel Engineering. Esta habilidad debe usarse al escribir, revisar o refactorizar código React/Next.js para garantizar patrones de rendimiento óptimos.

¿Qué es vercel-react-best-practices?

Esta habilidad proporciona una guía completa de optimización de rendimiento para aplicaciones React y Next.js, mantenida por el equipo de ingeniería de Vercel. Contiene 70 reglas organizadas en 8 categorías, priorizadas por impacto, que guían la refactorización automática y generación de código. Las reglas cubren desde la eliminación de cascadas de solicitudes (crítico) hasta optimización del tamaño del bundle, rendimiento del lado del servidor, fetching de datos del lado del cliente, optimización de re-renderizados, rendimiento de renderizado, rendimiento de JavaScript y patrones avanzados. Cada regla incluye explicaciones detalladas, ejemplos de código incorrecto y correcto, y contexto adicional. Es útil para desarrolladores que escriben componentes React, páginas Next.js, implementan fetching de datos o revisan código en busca de problemas de rendimiento. Compatible con cualquier plataforma que utilice React y Next.js, y se puede consultar directamente desde archivos de reglas individuales.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/vercel-labs/agent-skills/tree/main/skills/react-best-practices

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Prácticas recomendadas de Vercel para React

Guía completa de optimización de rendimiento para aplicaciones React y Next.js, mantenida por Vercel. Contiene 70 reglas en 8 categorías, priorizadas por impacto para guiar la refactorización y generación de código automatizadas.

Cuándo aplicar

Consulte estas pautas cuando:

  • Escriba nuevos componentes React o páginas Next.js
  • Implemente fetching de datos (del lado del cliente o del servidor)
  • Revise código en busca de problemas de rendimiento
  • Refactorice código React/Next.js existente
  • Optimice el tamaño del bundle o los tiempos de carga

Categorías de reglas por prioridad

PrioridadCategoríaImpactoPrefijo
1Eliminación de cascadasCRÍTICOasync-
2Optimización del tamaño del bundleCRÍTICObundle-
3Rendimiento del lado del servidorALTOserver-
4Fetching de datos del lado del clienteMEDIO-ALTOclient-
5Optimización de re-renderizadosMEDIOrerender-
6Rendimiento de renderizadoMEDIOrendering-
7Rendimiento de JavaScriptBAJO-MEDIOjs-
8Patrones avanzadosBAJOadvanced-

Referencia rápida

1. Eliminación de cascadas (CRÍTICO)

  • async-cheap-condition-before-await - Verificar condiciones síncronas baratas antes de esperar flags o valores remotos
  • async-defer-await - Mover await a las ramas donde realmente se usa
  • async-parallel - Usar Promise.all() para operaciones independientes
  • async-dependencies - Usar better-all para dependencias parciales
  • async-api-routes - Iniciar promesas temprano, esperar tarde en rutas API
  • async-suspense-boundaries - Usar Suspense para transmitir contenido

2. Optimización del tamaño del bundle (CRÍTICO)

  • bundle-barrel-imports - Importar directamente, evitar archivos barrel
  • bundle-analyzable-paths - Preferir rutas de importación y sistema de archivos analizables estáticamente para evitar bundles y trazas amplias
  • bundle-dynamic-imports - Usar next/dynamic para componentes pesados
  • bundle-defer-third-party - Cargar análisis/registro después de la hidratación
  • bundle-conditional - Cargar módulos solo cuando la característica está activada
  • bundle-preload - Precargar al pasar el ratón/enfocar para velocidad percibida

3. Rendimiento del lado del servidor (ALTO)

  • server-auth-actions - Autenticar acciones del servidor como rutas API
  • server-cache-react - Usar React.cache() para deduplicación por solicitud
  • server-cache-lru - Usar caché LRU para almacenamiento en caché entre solicitudes
  • server-dedup-props - Evitar serialización duplicada en props de RSC
  • server-hoist-static-io - Elevar E/S estática (fuentes, logotipos) al nivel del módulo
  • server-no-shared-module-state - Evitar estado mutable a nivel de módulo en RSC/SSR
  • server-serialization - Minimizar datos pasados a componentes del cliente
  • server-parallel-fetching - Reestructurar componentes para paralelizar fetch
  • server-parallel-nested-fetching - Encadenar fetch anidados por elemento en Promise.all
  • server-after-nonblocking - Usar after() para operaciones no bloqueantes

4. Fetching de datos del lado del cliente (MEDIO-ALTO)

  • client-swr-dedup - Usar SWR para deduplicación automática de solicitudes
  • client-event-listeners - Desduplicar listeners de eventos globales
  • client-passive-event-listeners - Usar listeners pasivos para scroll
  • client-localstorage-schema - Versionar y minimizar datos de localStorage

5. Optimización de re-renderizados (MEDIO)

  • rerender-defer-reads - No suscribirse a estado solo usado en callbacks
  • rerender-memo - Extraer trabajo costoso en componentes memorizados
  • rerender-memo-with-default-value - Elevar props no primitivos predeterminados
  • rerender-dependencies - Usar dependencias primitivas en efectos
  • rerender-derived-state - Suscribirse a booleanos derivados, no a valores crudos
  • rerender-derived-state-no-effect - Derivar estado durante el renderizado, no en efectos
  • rerender-functional-setstate - Usar setState funcional para callbacks estables
  • rerender-lazy-state-init - Pasar función a useState para valores costosos
  • rerender-simple-expression-in-memo - Evitar memo para primitivos simples
  • rerender-split-combined-hooks - Dividir hooks con dependencias independientes
  • rerender-move-effect-to-event - Poner lógica de interacción en manejadores de eventos
  • rerender-transitions - Usar startTransition para actualizaciones no urgentes
  • rerender-use-deferred-value - Diferir renderizados costosos para mantener la entrada receptiva
  • rerender-use-ref-transient-values - Usar refs para valores transitorios frecuentes
  • rerender-no-inline-components - No definir componentes dentro de componentes

6. Rendimiento de renderizado (MEDIO)

  • rendering-animate-svg-wrapper - Animar envoltorio div, no elemento SVG
  • rendering-content-visibility - Usar content-visibility para listas largas
  • rendering-hoist-jsx - Extraer JSX estático fuera de componentes
  • rendering-svg-precision - Reducir precisión de coordenadas SVG
  • rendering-hydration-no-flicker - Usar script en línea para datos solo del cliente
  • rendering-hydration-suppress-warning - Suprimir discrepancias esperadas
  • rendering-activity - Usar componente Activity para mostrar/ocultar
  • rendering-conditional-render - Usar ternario, no && para condicionales
  • rendering-usetransition-loading - Preferir useTransition para estado de carga
  • rendering-resource-hints - Usar sugerencias de recursos de React DOM para precarga
  • rendering-script-defer-async - Usar defer o async en etiquetas script

7. Rendimiento de JavaScript (BAJO-MEDIO)

  • js-batch-dom-css - Agrupar cambios CSS mediante clases o cssText
  • js-index-maps - Construir Map para búsquedas repetidas
  • js-cache-property-access - Almacenar en caché propiedades de objetos en bucles
  • js-cache-function-results - Almacenar en caché resultados de funciones en Map a nivel de módulo
  • js-cache-storage - Almacenar en caché lecturas de localStorage/sessionStorage
  • js-combine-iterations - Combinar múltiples filter/map en un solo bucle
  • js-length-check-first - Verificar longitud de array antes de comparación costosa
  • js-early-exit - Retornar temprano de funciones
  • js-hoist-regexp - Elevar creación de RegExp fuera de bucles
  • js-min-max-loop - Usar bucle para min/max en lugar de sort
  • js-set-map-lookups - Usar Set/Map para búsquedas O(1)
  • js-tosorted-immutable - Usar toSorted() para inmutabilidad
  • js-flatmap-filter - Usar flatMap para mapear y filtrar en un solo paso
  • js-request-idle-callback - Diferir trabajo no crítico al tiempo de inactividad del navegador

8. Patrones avanzados (BAJO)

  • advanced-effect-event-deps - No poner resultados de useEffectEvent en dependencias de efecto
  • advanced-event-handler-refs - Almacenar manejadores de eventos en refs
  • advanced-init-once - Inicializar la aplicación una vez por carga
  • advanced-use-latest - useLatest para refs de callback estables

Cómo usar

Lea los archivos de reglas individuales para explicaciones detalladas y ejemplos de código:

rules/async-parallel.md
rules/bundle-barrel-imports.md

Cada archivo de regla contiene:

  • Breve explicación de por qué es importante
  • Ejemplo de código incorrecto con explicación
  • Ejemplo de código correcto con explicación
  • Contexto adicional y referencias

Documento completo compilado

Para la guía completa con todas las reglas expandidas: AGENTS.md

Individual skills in this repo

This repo contains 11 individual skills — each has its own dedicated page.

deploy-to-vercel

Deploy applications and websites to Vercel. Use when the user requests deployment actions like "deploy my app", "deploy and give me the link", "push this live", or "create a preview deployment".

vercel-cli-with-tokens

Deploy and manage projects on Vercel using token-based authentication. Use when working with Vercel CLI using access tokens rather than interactive login — e.g.

vercel-composition-patterns

React composition patterns that scale. Use when refactoring components with

vercel-labs/vercel-composition-patterns

React composition patterns that scale. Use when refactoring components with boolean prop proliferation, building flexible component libraries, or designing reusable APIs. Triggers on tasks involving compound components, render props, context providers, or component architecture. Includes React 19 API changes.

vercel-labs/vercel-react-best-practices

React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.

vercel-labs/vercel-react-native-skills

React Native and Expo best practices for building performant mobile apps. Use when building React Native components, optimizing list performance, implementing animations, or working with native modules. Triggers on tasks involving React Native, Expo, mobile performance, or native platform APIs.

vercel-labs/vercel-react-view-transitions

Guide for implementing smooth, native-feeling animations using React's View Transition API (`<ViewTransition>` component, `addTransitionType`, and CSS view transition pseudo-elements). Use this skill whenever the user wants to add page transitions, animate route changes, create shared element animations, animate enter/exit of components, animate list reorder, implement directional (forward/back) navigation animations, or integrate view transitions in Next.js. Also use when the user mentions view transitions, `startViewTransition`, `ViewTransition`, transition types, or asks about animating between UI states in React without third-party animation libraries.

vercel-optimize

Use for Vercel cost and performance optimization on deployed projects, especially Next.js, SvelteKit, Nuxt, and limited Astro apps. Collect Vercel metrics, usage, project config, and code scan results first; investigate only metric-backed candidates; produce ranked recommendations grounded in verified files and version-aware Vercel/framework docs. Trigger for Vercel bill reduction, slow or expensive routes, caching opportunities, Function Invocations, Build Minutes, Fast Data Transfer, Core Web Vitals, Bot Management, Fluid compute, or cost breakdown requests.

vercel-react-native-skills

React Native and Expo best practices for building performant mobile apps. Use

web-design-guidelines

Review UI code for Web Interface Guidelines compliance. Use when asked to

writing-guidelines

Review docs/prose for Writing Guidelines compliance. Use when asked to

Skills relacionados