¿Qué hace React Best Practices?
Guía completa de optimización de rendimiento para aplicaciones React. Contiene 37 reglas en 7 categorías, priorizadas por impacto.
Categorías de Reglas por Prioridad
| Prioridad | Categoría | Impacto | Prefijo |
|---|---|---|---|
| 1 | Eliminación de Cascadas | CRÍTICO | async- |
| 2 | Optimización de Tamaño de Bundle | CRÍTICO | bundle- |
| 3 | Fetching de Datos en Cliente | MEDIO-ALTO | client- |
| 4 | Optimización de Re-render | MEDIO | rerender- |
| 5 | Rendimiento de Renderizado | MEDIO | rendering- |
| 6 | Rendimiento de JavaScript | BAJO-MEDIO | js- |
| 7 | Patrones Avanzados | BAJO | advanced- |
Referencia Rápida
1. Eliminación de Cascadas (CRÍTICO)
async-defer-await- Mueve await a las ramas donde se usa realmenteasync-parallel- Usa Promise.all()/allSettled() para operaciones independientes
2. Optimización de Tamaño de Bundle (CRÍTICO)
bundle-dynamic-imports- React.lazy() para componentes pesadosbundle-defer-third-party- Carga análisis/registro bajo demandabundle-conditional- Carga módulos solo cuando la funcionalidad está activadabundle-preload- Precarga al pasar el ratón/para velocidad percibida
3. Fetching de Datos en Cliente (MEDIO-ALTO)
client-query-dedup- Usa TanStack Query para deduplicación automática de solicitudesclient-event-listeners- Deduplica listeners de eventos globalesclient-passive-event-listeners- Usa listeners pasivos para rendimiento de scrollclient-localstorage-schema- Versiona y minimiza datos de localStorage
4. Optimización de Re-render (MEDIO)
rerender-defer-reads- No te suscribas a estado solo usado en callbacksrerender-memo- Extrae trabajo costoso en componentes memoizadosrerender-dependencies- Usa dependencias primitivas en efectosrerender-derived-state- Suscríbete a booleanos derivados, no a valores crudosrerender-functional-setstate- Usa setState funcional para callbacks establesrerender-lazy-state-init- Pasa función a useState para valores costososrerender-transitions- Usa startTransition para actualizaciones no urgentes
5. Rendimiento de Renderizado (MEDIO)
rendering-animate-svg-wrapper- Anima un div contenedor, no el elemento SVGrendering-content-visibility- Usa content-visibility para listas largasrendering-hoist-jsx- Extrae JSX estático fuera de componentesrendering-svg-precision- Reduce la precisión de coordenadas SVGrendering-activity- Usa el componente Activity para mostrar/ocultarrendering-conditional-render- Usa ternario, no && para condicionales
6. Rendimiento de JavaScript (BAJO-MEDIO)
js-batch-dom-css- Agrupa cambios CSS mediante clases o cssTextjs-index-maps- Construye Map para búsquedas repetidasjs-cache-property-access- Almacena en caché propiedades de objetos en buclesjs-cache-function-results- Almacena en caché resultados de funciones en Map a nivel de módulojs-cache-storage- Almacena en caché lecturas de localStorage/sessionStoragejs-combine-iterations- Combina múltiples filter/map en un solo buclejs-length-check-first- Verifica la longitud del array antes de comparaciones costosasjs-early-exit- Retorna temprano de funcionesjs-hoist-regexp- Eleva la creación de RegExp fuera de buclesjs-min-max-loop- Usa bucle para min/max en lugar de sortjs-set-map-lookups- Usa Set/Map para búsquedas O(1)js-tosorted-immutable- Usa toSorted() para inmutabilidad
7. Patrones Avanzados (BAJO)
advanced-event-handler-refs- Almacena manejadores de eventos en refsadvanced-use-latest- useLatest para referencias estables de callbacks
Cómo Usar
Cada archivo de regla en references/ contiene: explicación, ejemplos de código incorrecto/correcto y contexto. Lee archivos individuales según sea necesario.