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

1.3K
Visualizações
¿Cuál es la diferencia entre useQuery y useLazyQuery en Apollo graphQL?

Estaba revisando la documentación de los ganchos de Apollo React.

Y vi que hay dos enlaces de consultas para usar, que son useQuery y useLazyQuery

Estaba leyendo esta página. https://www.apollographql.com/docs/react/api/react/hooks/

Alguien me puede explicar cual es la diferencia entre ellos y en que caso se debe usar.

over 4 years ago · Santiago Trujillo
4 Respostas
Responde à pergunta

0

Cuando el componente llama a useQuery , desencadena la consulta posteriormente.

Pero cuando se llama a useLazyQuery , no activa la consulta posteriormente, sino que devuelve una función que se puede usar para activar la consulta manualmente. Se explica en esta página: https://www.apollographql.com/docs/react/data/queries/#executing-queries-manually

Cuando React monta y representa un componente que llama al gancho useQuery , Apollo Client ejecuta automáticamente la consulta especificada. Pero, ¿qué sucede si desea ejecutar una consulta en respuesta a un evento diferente, como que un usuario haga clic en un botón? El gancho useLazyQuery es perfecto para ejecutar consultas en respuesta a eventos que no sean la representación de componentes. Este enlace actúa como useQuery , con una excepción clave: cuando se llama a useLazyQuery , no ejecuta inmediatamente su consulta asociada. En su lugar, devuelve una función en su tupla de resultados a la que puede llamar cuando esté listo para ejecutar la consulta.

over 4 years ago · Santiago Trujillo Relatório

0

Supongamos que tiene un componente en el que llama a useQuery, luego, tan pronto como se monta el componente, useQuery se ejecuta y los datos se obtienen del servidor. Pero si usa useLazyQuery en ese componente en lugar de useQuery, la consulta no se ejecuta y los datos no se recuperan cuando se monta el componente. En su lugar, puede ejecutar la consulta según sus requisitos, por ejemplo, después de hacer clic en un botón. Ejemplo:

 import React, { useState } from 'react'; import { useLazyQuery } from '@apollo/client'; function DelayedQuery() { const [dog, setDog] = useState(null); const [getDog, { loading, data }] = useLazyQuery(GET_DOG_PHOTO); if (loading) return <p>Loading ...</p>; if (data && data.dog) { setDog(data.dog); } return ( <div> {dog && <img src={dog.displayImage} />} <button onClick={() => getDog({ variables: { breed: 'bulldog' } })}> Click me! </button> </div> ); }

Aquí, tan pronto como hace clic en el botón, solo se ejecuta la consulta y se obtienen los datos y se muestra la imagen. Pero si hubiera utilizado useQuery en su lugar, antes de hacer clic en el botón (es decir, cuando se monta el componente), se habrían obtenido los datos y se habría mostrado la imagen.

over 4 years ago · Santiago Trujillo Relatório

0

ACTUALIZAR:

https://github.com/apollographql/apollo-client/blob/main/CHANGELOG.md#improvements-due-to-brainkim-in-8875

useLazyQuery ahora devuelve una promesa a partir de Apollo Client 3.5.0 (2021-11-08)

over 4 years ago · Santiago Trujillo Relatório

0

Algo de lo que parece no hablarse y de lo que me doy cuenta es que useLazyQuery no lee desde el caché. Esto es algo similar a llamar a la función de useQuery refetch

over 4 years ago · Santiago Trujillo 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