react7 de abril de 2026, 3:12 p. m.Lectura 3 min

React Concurrent Mode tiene un BUG invisible ⚠️ useSyncExternalStore lo arregla.

React 18 con su Concurrent Mode es una maravilla para el rendimiento, pero introdujo un problema sutil y muy técnico: el temido “tearing”. Este fenómeno ocurre cuando tus componentes de React leen estados externos (como

Artículo

Una lectura sobre tecnología y sistemas digitales, escrita para ir al punto y dejar claras las ideas principales.

Tema principal

desarrollo de software

Fuente

dev.to

Puntos clave

  • React 18 con su Concurrent Mode es una maravilla para el rendimiento, pero introdujo un problema sutil y muy técnico: el temido “tearing”.
  • Este fenómeno ocurre cuando tus componentes de React leen estados externos (como los de Redux, Zustand, APIs de navegador, o incluso `localStorage`) de forma inconsistente. Imagina que un componente lee el valor antiguo
  • Aquí es donde `useSyncExternalStore` brilla. Este hook, introducido en React 18, fue diseñado específicamente para eliminar el "tearing" al suscribirte a cualquier fuente de datos externa. Garantiza que todos tus compone
  • ¿Por qué es crucial dominarlo?
01

Bloque 1

React 18 con su Concurrent Mode es una maravilla para el rendimiento, pero introdujo un problema sutil y muy técnico: el temido “tearing”.

Este fenómeno ocurre cuando tus componentes de React leen estados externos (como los de Redux, Zustand, APIs de navegador, o incluso `localStorage`) de forma inconsistente. Imagina que un componente lee el valor antiguo mientras otro, debido a una pausa y reanudación en el renderizado concurrente, lee el valor nuevo. El resultado es una UI desincronizada, un bug visual que muchos ignoran o resuelven con parches ineficientes de `useState` + `useEffect`.

02

Bloque 2

Aquí es donde `useSyncExternalStore` brilla. Este hook, introducido en React 18, fue diseñado específicamente para eliminar el "tearing" al suscribirte a cualquier fuente de datos externa. Garantiza que todos tus componentes vean la misma instantánea del estado, incluso si React pausa y reanuda renders. Es el patrón que usan internamente las librerías de gestión de estado top para ser "Concurrent Mode-ready".

¿Por qué es crucial dominarlo?

03

Bloque 3

• Elimina Tearing: Garantiza que tus componentes siempre lean el mismo valor de una fuente externa, evitando inconsistencias visuales difíciles de depurar. • SSR Safe: Proporciona un argumento `getServerSnapshot` para manejar la inicialización del estado en el lado del servidor, previniendo errores de hidratación. • Simplifica Suscripciones: Abstrae la lógica de suscripción y desuscripción de forma robusta, optimizada para la lectura síncrona de estados externos. • Rendimiento y Fiabilidad: Permite construir tus propios gestores de estado o integrar librerías de terceros con total seguridad y eficiencia, sin los race conditions de `useState`/`useEffect`.

Dominar `useSyncExternalStore` es clave para construir arquitecturas React robustas y de alto rendimiento. No solo corrige bugs invisibles, sino que te empodera para crear abstracciones de estado seguras y escalables.

04

Bloque 4

¿Han detectado “tearing” en sus proyectos React 18? ¿Cómo manejan la sincronización con estados externos en arquitecturas concurrentes?