Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

154
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda