Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

153
Vistas
Reaccionar para evitar volver a renderizar mediante el uso de una variante funcional de useState

Estoy tratando de entender la diferencia exacta en términos de cómo se produce la nueva representación del componente de función en un caso usando setState simple V/s otro caso que usa actualización de estado funcional

El fragmento de código relevante es el siguiente

Caso 1: Provoca una nueva renderización del componente

 const onRemove = useCallback( tickerToRemove => { setWatchlist(watchlist.filter(ticker => ticker !== tickerToRemove)); }, [watchlist] );

Caso 2: No causa volver a renderizar

 const onRemove = useCallback(tickerToRemove => { setWatchlist(watchlist => watchlist.filter(ticker => ticker !== tickerToRemove) ); }, []);

Se puede ver un ejemplo completo de ambos casos de uso en;

https://codesandbox.io/s/06c-usecallback-final-no-rerenders-bsm64?file=/src/watchlistComponent.js

https://codesandbox.io/s/06b-usecallback-usememo-ngwev?file=/src/watchlistComponent.js:961-970

ACTUALIZAR

Enlace al artículo completo https://medium.com/@guptagaruda/react-hooks-understanding-component-re-renders-9708ddee9928#204b

Estoy un poco confundido en cuanto a cómo se evita la re-renderización de componentes secundarios.

en el articulo dice

"Afortunadamente, la función setter de useState hook admite una variante funcional que viene a nuestro rescate. En lugar de llamar a setWatchlist con la matriz de lista de vigilancia actualizada, podemos enviar una función que obtiene el estado actual como argumento".

Sin embargo, estoy un poco confundido si se evita la re-renderización de los componentes secundarios porque usamos una matriz vacía (ya que [] no cambia entre renderizaciones) ¿V/s se previene debido al uso de la variante setter de useState hook?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Usar una actualización de estado funcional o no es bastante irrelevante para la pregunta que está haciendo. Parece estar preguntando por qué (1) una devolución de llamada con dependencia desencadena una nueva representación versus (2) una devolución de llamada con dependencia vacía.

La respuesta es literalmente muy simple. En la versión (2), está proporcionando una referencia de devolución de llamada estable desde el momento en que se monta el componente que nunca cambia , mientras que en (1) la referencia de devolución de llamada cambia cuando lo hace la dependencia . Recuerde que los componentes de React se vuelven a renderizar cuando se actualizan el estado o los accesorios ( una nueva referencia de devolución de llamada es una nueva referencia de accesorio ) o cuando se vuelve a renderizar el componente principal. Dado que onRemove prop se está actualizando en (1), activa una nueva representación.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda