Se você já trabalhou com react-query provavelmente já se deparou tentando entender a diferença entre o staleTime e o cacheTime e, mais importante, o porque sua aplicação continuar fazendo chamadas ao servidor mesmo você mudando os valores deles.
Vou tentar explicar da forma mais breve possível para você poder voltar a trabalhar.
Estado inicial
A sua aplicação ainda não fez nenhuma chamada ao servidor, neste caso, quando o hook for chamado, ele vai apenas buscar os dados no servidor e salvar no cache.
Agora, o que acontece quando o hook já tiver sido chamado ao menos uma vez e tento chamá-lo novamente? Bem, depende das seguintes situações.
Situação 1
staleTime = 0
cacheTime = 5 min
Como o seu cache está configurado para 5 minutos, o react-query vai devolver os dados prontamente, entretanto, nesta primeira situação, como o staleTime é 0 os dados sempre serão obsoletos, portanto o react-query fica encarregado de fazer uma requisição em background para o servidor e atualizar os dados da query quando possível.
Situação 2
staleTime = 5 min
cacheTime = 5 min
Semelhante à primeira situação, o react-query vai
devolver os dados prontamente, porém, dessa vez o staleTime difere de 0, logo o react-query não vai fazer nenhuma chamada em background, afinal o seu dado não está obsoleto
Lembrando que, o cache mencionando aqui é apenas na memória do navegador, se o usuário recarregar a página o cache vai ser limpo, voltando para a situação inicial
Em ambas situações considerei o tempo entre a primeira e a segunda chamada do hook menor que cinco minutos, visto que em ambas, quando o tempo entre as chamadas é maior que cinco minutos, o react-query não utiliza o cache.
Espero que essa explicação rápida tenha conseguido sanar as suas dúvidas em relação ao assunto


Top comments (0)