Startec

Startec

[Tutorial - React] Como otimizar chamadas de API no React usando Axios e React Query · davialcantara

Hoje, às 12:42

·

4 min de leitura

·

0 leituras

Se você está desenvolvendo uma aplicação React que precisa realizar chamadas de API, é importante considerar a otimização dessas chamadas para melhorar a performance e a experiência do us...
[Tutorial - React] Como otimizar chamadas de API no React usando Axios e React Query · davialcantara

Se você está desenvolvendo uma aplicação React que precisa realizar chamadas de API, é importante considerar a otimização dessas chamadas para melhorar a performance e a experiência do usuário. Neste artigo, vamos explorar como podemos utilizar as bibliotecas Axios e React Query para realizar chamadas de API de forma eficiente e otimizada.

Configuração do Axios

O Axios é uma biblioteca popular para fazer requisições HTTP no JavaScript. Antes de começarmos a usá-lo, precisamos configurá-lo corretamente. Aqui está um exemplo de como você pode fazer isso:

import axios from 'axios'
const api = axios.create({
	baseURL: '<http://localhost:3000/api>'
});
export async function request(options) {
	const onSuccess = (response) => {
		const { data: { message } } = response;
		return message;
	};
	const onError = () => {
		return Promise.reject(error.response);
	};
	return api(options).then(onSuccess).catch(onError);
}

Nesse exemplo, criamos uma instância do Axios com a URL base da nossa API. Em seguida, definimos uma função request que recebe as opções da requisição e retorna uma Promise. Essa função trata os casos de sucesso e erro da requisição.

Criando funções para chamadas

Agora que nossa configuração do Axios está pronta, podemos criar funções para realizar chamadas específicas à nossa API. Aqui está um exemplo:

import request from './api'
export class DogService {
	static getRandomDog() {
		return request({
			url: '/path',
			method: 'GET'
		});
	};
	static getAllDogs() {
		return request({
			url: '/path',
			method: 'GET'
		});
	};
}

Nesse exemplo, criamos uma classe DogService que contém métodos estáticos para realizar chamadas de API relacionadas a cachorros. Esses métodos utilizam a função request que definimos anteriormente.

Configuração do React Query

Agora que estamos prontos para fazer chamadas de API de forma eficiente com o Axios, vamos integrar o React Query para gerenciar o estado dessas chamadas. O React Query é uma biblioteca que simplifica o gerenciamento de dados assíncronos no React.

Aqui está um exemplo de como configurar o React Query:

import { QueryClient } from 'react-query';
const queryClient = new QueryClient({
	defaultOptions: {
		queries: {
			refetchOnWindowFocus: false,
			retry: false
		}
	}
});

Nesse exemplo, criamos uma instância do QueryClient com algumas opções padrão. Desabilitamos o recarregamento automático das consultas quando a janela está em foco (refetchOnWindowFocus: false) e desabilitamos a tentativa de reexecução das consultas em caso de erro (retry: false).

Melhorando a performance

Além de configurar o React Query, podemos melhorar ainda mais a performance das chamadas de API adicionando uma opção de cache com tempo de expiração. Isso evita que as consultas sejam feitas com muita frequência, economizando recursos e reduzindo o tempo de resposta.

Aqui está um exemplo de como adicionar essa configuração nas queries do React Query:


const queryClient = new QueryClient({
	defaultOptions: {
		queries: {
			refetchOnWindowFocus: false,
			retry: false,
			cacheTime: 60 * 1000 // Tempo de cache em milissegundos
		}
	}
});

Nesse exemplo, definimos cacheTime como 60 * 1000, o que significa que o resultado da consulta será armazenado em cache por 60 segundos.

Com essa configuração, o React Query irá armazenar em cache os resultados das chamadas de API por um determinado período de tempo, evitando consultas desnecessárias.

Conclusão

Neste artigo, exploramos como otimizar as chamadas de API no React utilizando as bibliotecas Axios e React Query. Configuramos o Axios para realizar as requisições HTTP de forma eficiente e criamos funções para facilitar a chamada à API. Além disso, configuramos o React Query para gerenciar o estado das chamadas e melhorar a performance adicionando uma opção de cache.

Utilizando essas técnicas, você poderá aprimorar a performance da sua aplicação React e proporcionar uma melhor experiência aos usuários.

Lembre-se de conferir a documentação oficial do Axios e do React Query para obter mais informações sobre suas funcionalidades.

Gostou deste artigo? Aprenda mais sobre desenvolvimento web e React comigo! Estarei postando mais conteúdos em breve. Siga-me nas redes sociais para receber mais dicas e tutoriais incríveis!

Twitter: @davialcantaraa
LinkedIn: Davi Alcântara
Github: @davialcantaraa
Site pessoal: davialcantara.dev (em manutenção)

Comente como você tem feito suas chamadas API e compartilhe este artigo com seus amigos desenvolvedores. Até a próxima!

Quer fazer uma parceria ou um projeto? Mande-me um e-mail

Veja também no:
Medium
DEV
Meu site


Continue lendo

DEV

10 React Interview Questions & Answers
In a technical interview focused on React.js, the interviewer would likely ask questions that touch upon various aspects of the library, its features, concepts, and best practices. Here are 10 must know...

Hoje, às 19:37

Tech Crunch

A comprehensive list of 2023 tech layoffs
Last year’s techwide reckoning continues. In 2023, layoffs have yet again cost tens of thousands of tech workers their jobs; this time, the workforce reductions have been driven by the biggest names in tech...

Hoje, às 19:26

DEV

10 Best Practices for Writing Documentation (For Those Who Would Rather Do Anything Else)
When I joined Grammarly as a developer advocate, my first task was to write documentation for how to use the Grammarly Text Editor SDK with desktop apps built on Electron. While I had experience writing...

Hoje, às 18:52

IT Forum

Maioria dos CIOs planeja integrar sistemas em 2023, diz pesquisa - IT Forum
Imagem: Shutterstock Executivos de TI estão buscando acelerar jornadas para nuvem e um dos caminhos que encontram para isso está na integração de sistemas. Novo estudo feito pela Digibee, em parceria com a...

Hoje, às 18:13

DEV

12 Tool for Your Next Project
1. DemoCoding DemoCoding provide free CSS animation, code snippets, free CSS tool, amazing codepen ideas and many more. Free CSS Tools CSS Glassmorphism Generator Neumorphism CSS Generator CSS Gradient...

Hoje, às 18:04

Tech Crunch

Ask Sophie: What are my options if a company rescinds my OPT job offer?
Sophie Alcorn Contributor Share on Twitter Sophie Alcorn is the founder of Alcorn Immigration Law in Silicon Valley and 2019 Global Law Experts Awards’ “Law Firm of the Year in California for Entrepreneur Immigration Services.” She connects people with the businesses and opportunities that expand their lives. More posts by this contributor Ask Sophie: Which […]

Hoje, às 18:00

DEV

Typescript Code Generation
Do you ever wonder how to generate TypeScript code automatically? Using the TypeScript Compiler API, we can leverage it's factory functions for writing scripts that can generate TypeScript code, based on any...

Hoje, às 17:52

DEV

Is Gulp Dead?
Hey there, fellow devs! In the ever-evolving world of web development, we rely on nifty tools and task runners to keep our workflows smooth like butter. One such legend is Gulp, the task runner that once...

Hoje, às 17:47

DEV

Understanding the Contents of the .git Folder
If you've ever used Git before, you're probably familiar with the .git folder. This folder contains all of the information that Git needs to track changes to your codebase, and it's an essential part of the...

Hoje, às 17:45

TabNews

Aumente o Desempenho das suas Aplicações Web com o Poder do Code Splitting! · lucasnsantos
Capa Introdução Nos últimos anos, a criação de aplicações web cada vez mais complexas se tornou comum. Com essa complexidade crescente, é importante garantir aplicações cada vez mais otim...

Hoje, às 17:27