Aula 7

React

Requisições HTTP no React

📌

📅 Versão atualizada em 19/06/2025 (versão 2)

Nessa versão foram excluídos os seguintes tópicos:

❌ useContext e ContextAPI - movido para a Aula 10

📌

📅 Versão atualizada em 19/06/2025 (versão 2)

Nessa versão foram incluídos os seguintes tópicos:

✔️ Mais detalhes e explicações sobre React Query e SWR e links

Existem várias formas de realizar requisições HTTP no React. São elas:

Usando fetch nativo do JavaScript


const App = () => {
  const [data, setData] = useState(null);

  useEffect(() => {
    fetch('https://api.example.com/data')
      .then((response) => response.json())
      .then((data) => setData(data))
      .catch((error) => console.error('Error fetching data:', error));
  }, []);

   return (
    <div>
      <h1>Data:</h1>
      <pre>{data ? JSON.stringify(data, null, 2) : 'Loading...'}</pre>
    </div>
  );

}

export default App;

        

Vantagens

Desvantagens

Usando Axios

            
import React, { useEffect, useState } from 'react';
import axios from 'axios';
const App = () => {
  const [data, setData] = useState(null);
  useEffect(() => {
    axios.get('https://api.example.com/data')
      .then((response) => setData(response.data))
      .catch((error) => console.error('Error fetching data:', error));
  }, []);
  return (
    <div>
      <h1>Data:</h1>
      <pre>{data ? JSON.stringify(data, null, 2) : 'Loading...'}</pre>
    </div>
  );
}
export default App;

          

Vantagens

Desvantagens

Instale e veja como funciona em: Documentação do Axios

Usando react-query (TanStack Query)

React Query é uma biblioteca para gerenciamento de estados relacionados a dados assíncronos em aplicações React. Ela simplifica tarefas como o fetch de dados, caching, sincronização e atualização em tempo real, reduzindo a necessidade de gerenciar manualmente estados de carregamento, erro e sucesso. Com React Query, dados são armazenados em cache e revalidados automaticamente, melhorando a performance da aplicação. A biblioteca também oferece suporte a funcionalidades avançadas, como pré-busca de dados, paginação e invalidação de cache, tornando-se uma escolha poderosa para lidar com APIs e dados assíncronos de forma eficiente.

import React from 'react';
import { useQuery } from '@tanstack/react-query';
const App = () => {
  const { data, isLoading, error } = useQuery(['data'], () =>
    fetch('https://api.example.com/data').then((res) => res.json())
  );
  if (isLoading) return <div>Loading...</div>;
  if (error) return <div>Error: {error.message}</div>;
  return (
    <div>
      <h1>Data:</h1>
      <pre>{JSON.stringify(data, null, 2)}</pre>
    </div>
  );
}
export default App;

        

Vantagens

Desvantagens

Instale e veja como funciona em: Documentação do TanStack Query

Usando SWR

SWR (stale-while-revalidate) é uma biblioteca para React que facilita o gerenciamento de dados remotos, especialmente na interação com APIs. Baseada no conceito de "stale-while-revalidate", ela retorna dados armazenados em cache enquanto busca novas informações em segundo plano, garantindo uma experiência rápida e responsiva para o usuário.

SWR simplifica a implementação de funcionalidades como cache, revalidação automática, sincronização de dados, e suporte a SSR (Server-Side Rendering). É ideal para aplicações que requerem dados em tempo real ou atualizações frequentes, oferecendo uma abordagem leve e eficiente para o gerenciamento de dados assíncronos.

import useSWR from 'swr';
const fetcher = (url) => fetch(url).then((res) => res.json());
const App = () => {
  const { data, error } = useSWR('https://api.example.com/data', fetcher);
  if (error) return <div>Error: {error.message}</div>;
  if (!data) return <div>Loading...</div>;
  return (
    <div>
      <h1>Data:</h1>
      <pre>{JSON.stringify(data, null, 2)}</pre>
    </div>
  );
}
export default App;

        

Vantagens

Desvantagens

Instale e veja como funciona em: Documentação do SWR

Exercício para fazer em aula

Faça um componente Dog e DogCards com requisições utilizando esse codigo de base: Clique aqui