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

149
Visualizações
La función React Custom Hook sigue recordando

Según el hilo de abajo,

useCustomHook siendo llamado en cada render - hay algo mal con esto

Dice que es completamente normal seguir llamando a la función de gancho personalizado cada vez que React vuelve a renderizar.

Mis preguntas son si afecta el rendimiento al devolver una matriz de esta función Custom Hook (no al obtener API y recibir datos) que contiene muchos valores.

Si es así, ¿cómo evitarlo (cómo permitir que esta función Custom Hook se ejecute solo una vez)?

Aquí está mi código de gancho personalizado, devuelve una matriz que contiene alrededor de 5000 valores de cadena.

 function FetchWords(url: string) { const [data, setData] = useState<string[]>([]); useEffect(() => { fetch(url) .then((words) => words.text()) .then((textedWords) => { setData(textedWords.replace(/\r\n/g, "\n").split("\n")); }); }, []); const expensiveData = useMemo(() => data, [data]); return expensiveData; } export default FetchWords;

Mi js principal

 const wordLists: any[] = useFetch( "https://raw.githubusercontent.com/charlesreid1/five-letter-words/master/sgb-words.txt" );
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

  1. Si te preocupa traer todos estos datos al mismo tiempo, puedes indicar desde el backend que te envíen una determinada cantidad de registros y desde el frontend los puedes gestionar con la paginación.
  2. el uso de useMemo es superfluo.
  3. el useEffect que estás usando solo se renderizará UNA VEZ, es decir, solo llamará a los 5.000 registros que mencionas una sola vez
about 4 years ago · Juan Pablo Isaza Relatório

0

  1. CustomHooks debe comenzar con el use...
  2. No necesita useMemo en su enlace, simplemente devuelva el estado data .
  3. Su enlace realiza la llamada de fetch solo una vez, por lo que no hay problema, ya que el efecto tiene una dependencia vacía, por lo que se ejecuta una vez después del primer procesamiento.
  4. El enlace almacena la matriz de 5000 entradas una vez en el estado de data y devuelve la misma referencia cada vez que se llama a su enlace personalizado durante las re-renderizaciones de componentes. No hay operación de copia, por lo que no necesita preocuparse por eso.
  5. Si solo desea fetch 100 entradas, por ejemplo, su backend debe proporcionar esa API.

Espero que esto resuelva tus dudas ya que no queda muy claro cuál es tu duda.

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