Há muitas bibliotecas incríveis disponíveis para desenvolvedores de front-end e uma delas é a ReactQuery. A ReactQuery é uma biblioteca essencial para gerenciamento de estado e cache de dados em aplicações React e React Native. Ela oferece uma maneira simples e eficiente de buscar, armazenar em cache e atualizar dados, além de fornecer funcionalidades avançadas como controle de refetching, paginapros, otimização de redes e muito mais.
Neste tutorial, vamos nos aprofundar na biblioteca ReactQuery e discutir como ela pode ser usada em projetos React e React Native. Vamos ver como instalar a biblioteca, como configurá-la e como usá-la para realizar operações com dados de forma eficiente.
Instalação
Para começar a usar a ReactQuery em seu projeto React ou React Native, você precisa instalar a biblioteca primeiro. Você pode instalar a ReactQuery usando o npm ou yarn. Abra o seu terminal e execute o seguinte comando:
npm install react-query
# ou
yarn add react-query
Depois de instalar a biblioteca, você pode começar a importá-la em seus arquivos de código.
Configuração
Agora que você instalou a ReactQuery em seu projeto, é hora de configurá-la. Para isso, você precisa envolver sua aplicação em um <QueryClientProvider>
e fornecer um objeto QueryClient
com as configurações desejadas. Você pode fazer isso no arquivo raiz de sua aplicação, geralmente index.js
ou App.js
.
import { QueryClient, QueryClientProvider } from 'react-query';
const queryClient = new QueryClient();
ReactDOM.render(
<QueryClientProvider client={queryClient}>
<App />
</QueryClientProvider>,
document.getElementById('root')
);
Com essa configuração básica, a ReactQuery está pronta para ser usada em todo o seu aplicativo.
Uso Básico
A ReactQuery oferece diversos hooks personalizados que facilitam a interação com dados, como useQuery
para buscar dados e useMutation
para realizar mutações. Vamos ver um exemplo simples de como buscar dados usando useQuery
.
import { useQuery } from 'react-query';
const fetchData = async () => {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
return data;
};
const MyComponent = () => {
const { data, isLoading, isError } = useQuery('myData', fetchData);
if (isLoading) return <p>Carregando...</p>;
if (isError) return <p>Ocorreu um erro ao carregar os dados.</p>;
return (
<div>
{data.map(item => (
<p key={item.id}>{item.name}</p>
))}
</div>
);
};
Neste exemplo, usamos o hook useQuery
para buscar dados da API https://api.example.com/data
e exibir os resultados na tela. O hook gerencia automaticamente o estado de carregamento e erro dos dados, facilitando a lógica de exibição condicional.
Recursos Avançados
Além dos recursos básicos, a ReactQuery oferece uma variedade de recursos avançados para otimização de desempenho e gerenciamento de dados complexos. Alguns dos recursos avançados incluem:
- Queries reativas: A ReactQuery automaticamente reexecuta as queries quando as dependências mudam, garantindo que os dados estejam sempre atualizados.
- Paginação: A biblioteca facilita a implementação de paginação de dados, tornando mais fácil lidar com grandes conjuntos de dados.
- Mutations otimistas: A ReactQuery suporta mutations otimistas, permitindo que você atualize a interface do usuário de forma otimista antes de obter a confirmação do servidor.
Esses são apenas alguns dos recursos avançados oferecidos pela ReactQuery. Para saber mais, consulte a documentação oficial da biblioteca em https://react-query.tanstack.com/.
Com a ReactQuery, você pode melhorar significativamente o gerenciamento de estado e cache de dados em suas aplicações React e React Native. Experimente a biblioteca em seu próximo projeto e veja como ela pode facilitar o desenvolvimento de aplicações modernas e eficientes.
Pessoal as linhas estão comentadas pq eu já tinha substituído, deixei comentado só para mostrar a diferença. Vc pode ver mais pra frente no vídeo, quando mostro a diferença do Git o que está em vermelho é o que foi removido e não esta comentado. Tem o tutorial completo aqui no canal, eu fazendo passo a passo do zero: https://youtu.be/mo7MZFYYzWM
Isso é fantástico mesmo. Mas não concordo muito com isso. Vai chegar um momento em que o programador não vai mais ser programador kkkk. Mas enfim é a vida
Não existe almoço de graça.
Tem 5 anos que eu uso um hook que criei que é muito parecido com essa lib.
A pergunta é, se ele faz só isso você realmente deveria ter ele no teu bundle?
Nesse caso eu optaria pelo SWR que além de ser agnóstico ao framework/biblioteca ainda reidrata a página no focus, utiliza interface otimista e te dá controle de quando revalidar os dados.
Mas não manjo de react-query para saber oq seria mais útil.
KKKKKKKKKK mano e ainda jungam o PHP hahahah isso tem a varios anos atras
Não precisa baixar uma lib pra isso, isso é um hook extremamente simples
Funciona no React Native ??
uai
Você remove linhas de código e adiciona uma lib. Sua vida será facilitada, mas dependendo da quantidade de request que isso recebe seu ganho performático vai pro saco.
🎉🎉O pai te escolheu como filho, amado. nada vai tirar esse amor dele por você
Romanos 8:38-39
Provérbios 3:14
Reconhece-o em todos os seus caminhos e ele endireitará suas veredas.
Salmos 91:11
Porque a seus anjos ele dará ordens a seu respeito, para que o protejam em todos os seus caminhos.
Exodo 15:1
Então entoou Moisés e os filhos de Israel este cântico ao Senhor:
Cantarei ao Senhor porque triunfou gloriosamente e lançou no mar o cavalo e o seu cavaleiro
Provérbios 16:3
Consagre ao Senhor tudo o que você faz e os seus planos serão bem sucedidos
Jeremias 33:3
Clama-me e eu responderei e lhe mostrarei coisas grandes e firmes que não conhecem.
Atos 1:8
Porém,quando o Espírito Santo descer sobre vocês, vocês receberão poder e serão minhas testemunhas em Jerusalém e em toda Judéia e Samaria e nos lugares mais distantes da terra
1 Pedro 5:7
Lançando sobre ele toda a vossa ansiedade, porque ele tem cuidado de vós
João 14:1
Não permitais que o vosso coração se preocupe. Credes em Deus, crede também em mim
O pai que é Deus te amou, e ele quer apenas o seu coração portanto entregue-se❤❤🎉❤
🎉🎉🎉❤Provérbios 16:1-3
1. Do homem são as preparações do coração, mas do Senhor é a resposta da língua.
2. Todos os caminhos do homem são puros aos seus olhos, mas o Senhor pesa o Espírito.
3. Confia ao Senhor as suas obras e os teus pensamentos serão estabelecidos.🎉🎉🎉
Realmente, react query da uma simplificada, porem dava para fazer um custom hook bem melhor q essa porqueira ai com uma funcionalidade identica ao react query kkkk
POW se for só pra contar quantidades de linhas no componente era só exporta a função para outro módulo ^reactQuery é muito útil mais não só para reduzir linha! Pá aí vc só mandou elas para a pasta node_modules e muitas linhares de linhas junto. Se é algo simples como no exemplo é igual atirar uma letleFet numa formiga
Por curiosidade, qual o tamanho daquela linha ali ? Pq tá dando um overflow horizontal monstro e talvez por boas práticas seria melhor deixar a expressão quebrar a linha para futuras manutenções/ajustes.
JavaScript e tão ruim q temq aprender mil frameworks diferentes que reiventam a roda pra não durarem 6 meses de manutenção q perde hype kkkjk
vão todo mundo pro vue que os problemas acabam u.u
mas nao fica mais dificil pra manutenção ?
Na verdade está errado pois tem chamada mas fica no contexto aonde declara e fala que eh uma linha eh de matar , o react query eh uma mão na roda em vários aspectos mas aí exagerou .
Mas é mais eficiente?
Vai chegar um momento que vai estar tão facil que todos nós não teremos mais emprego
React kiriiiii 👍👍