Реализация React Query в веб-приложении

Реализация React Query в веб-приложении

https://t.me/react_tg

Введение

В этом уроке рассмотрим, как интегрировать React Query в базовое веб-приложение. React Query — мощная библиотека для управления, кэширования и синхронизации состояния сервера в приложениях React. Мы создадим простое приложение, получающее данные из API с открытым исходным кодом, и используем Bootstrap для применения стилей.

Цели проекта

Создать веб-приложение для получения данных из нижеуказанного API с помощью React Query.

Приложение должно отображать следующий пользовательский интерфейс:

Приложение с интеграцией React Query

Представление React Query для начинающих

ПРЕДСТАВЬТЕ, ЧТО У ВАС ЕСТЬ ПОМОЩНИК-ВОЛШЕБНИК, КОТОРЫЙ МОЖЕТ ПРИНОСИТЬ ИГРУШКИ ИЗ МАГАЗИНА “ДЕТСКИЙ МИР”, КОГДА ВЫ ПОПРОСИТЕ. ЭТОТ ПОМОЩНИК НЕ ТОЛЬКО ПРИНОСИТ ИГРУШКИ, НО И ЗАПОМИНАЕТ ИХ. ЕСЛИ ВЫ СНОВА ЗАХОТИТЕ ТУ ЖЕ ИГРУШКУ, ОН СМОЖЕТ ДОСТАТЬ ЕЕ ДЛЯ ВАС, НЕ ПОСЕЩАЯ МАГАЗИН.
REACT QUERY — ТАКОЙ ЖЕ ВОЛШЕБНЫЙ ПОМОЩНИК ДЛЯ КОМПЬЮТЕРНЫХ ПРОГРАММ. ОН ПОМОГАЕТ ПОЛУЧАТЬ ИНФОРМАЦИЮ ИЗ ИНТЕРНЕТА И ЗАПОМИНАЕТ ЕЕ, ЧТОБЫ ПРОГРАММЫ МОГЛИ ИСПОЛЬЗОВАТЬ ЕЕ В ЛЮБОЙ МОМЕНТ.

Техническое описание:

REACT QUERY — ЭТО БИБЛИОТЕКА В REACT, КОТОРАЯ УПРОЩАЕТ ПОЛУЧЕНИЕ И УПРАВЛЕНИЕ ДАННЫМИ В ПРИЛОЖЕНИЯХ. ОНА ПРЕДОСТАВЛЯЕТ НАБОР ИНСТРУМЕНТОВ ДЛЯ ОБРАБОТКИ ДАННЫХ, ИХ КЭШИРОВАНИЯ И ОБНОВЛЕНИЯ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА ПРИ ИЗМЕНЕНИИ ДАННЫХ. ПРИМЕНЕНИЕ ЭТОЙ БИБЛИОТЕКИ ИЗБАВЛЯЕТ ОТ НАПИСАНИЯ ОБЪЕМНОГО СЛОЖНОГО КОДА ДЛЯ ВЗАИМОДЕЙСТВИЯ С СЕРВЕРОМ И УПРАВЛЕНИЯ ДАННЫМИ В ПРИЛОЖЕНИИ. REACT QUERY УПРОЩАЕТ ЭТОТ ПРОЦЕСС, ДЕЛАЯ ЕГО БОЛЕЕ ЭФФЕКТИВНЫМ И ПОНЯТНЫМ.
С ТЕХНИЧЕСКОЙ ТОЧКИ ЗРЕНИЯ, REACT QUERY ИСПОЛЬЗУЕТ КОНЦЕПЦИЮ “ЗАПРОСОВ” (“QUERIES”) ДЛЯ ПОЛУЧЕНИЯ ДАННЫХ. ЗАПРОС — ЭТО ТРЕБОВАНИЕ ПРЕДОСТАВИТЬ ИНФОРМАЦИЮ С СЕРВЕРА, И REACT QUERY СПРАВЛЯЕТСЯ С ЭТИМ ПРОЦЕССОМ БЕЗ ПРОБЛЕМ. БИБЛИОТЕКА REACT QUERY ТАКЖЕ ПОМОГАЕТ В КЭШИРОВАНИИ, ТО ЕСТЬ В ХРАНЕНИИ ДАННЫХ, ЧТОБЫ ПРИ ПОВТОРНОМ ОБРАЩЕНИИ К НИМ НЕ ПРИШЛОСЬ СНОВА ПОЛУЧАТЬ ИХ С СЕРВЕРА.
REACT QUERY — ПОЛЕЗНЫЙ ИНСТРУМЕНТ, ОСОБЕННО ПРИ СОЗДАНИИ REACT-ПРИЛОЖЕНИЯ, КОТОРОЕ ДОЛЖНО ВЗАИМОДЕЙСТВОВАТЬ С СЕРВЕРАМИ ДЛЯ ПОЛУЧЕНИЯ ИЛИ ОТПРАВКИ ДАННЫХ. ЭТО НАДЕЖНЫЙ ПОМОЩНИК, КОТОРЫЙ ДЕЛАЕТ ЗАДАЧИ ПО СОЗДАНИЮ КОДА БОЛЕЕ УПРАВЛЯЕМЫМИ И ОРГАНИЗОВАННЫМИ.

Необходимые условия

Выполните следующие действия.

  • Установите Node.js.
  • Создайте и настройте приложение React с помощью приведенных ниже команд:
npx create-react-app react-query-webapp
npm install react-query

Шаги по реализации проекта

Шаг 1. Настройка проекта

cd react-query-webapp
npm install bootstrap
npm start

Шаг 2. Получение данных из API с открытым исходным кодом

В данном примере будем использовать JSONPlaceholder API, предоставляющий фейковый REST API для тестирования и создания прототипов в режиме онлайн.

Обновите содержимое файла “src/App.js”.

// src/App.js

import React from "react";
import { useQuery } from "react-query";
import Header from "./components/Header";
import "bootstrap/dist/css/bootstrap.min.css";

const fetchData = async () => {
  const response = await fetch("https://jsonplaceholder.typicode.com/todos/1");
  const data = await response.json();
  return data;
};

function App() {
  const { data, isLoading, error } = useQuery("todos", fetchData);

  if (isLoading) return <div>Loading...</div>;
  if (error) return <div>Error: {error.message}</div>;

  return (
   <div>
    <Header title={"React Query"} />
    <div className="container mt-5">
      <h1>React Query Web App</h1>
      <div className="card">
        <div className="card-body">
          <h5 className="card-title">Data from JSONPlaceholder API</h5>
          <p className="card-text">{JSON.stringify(data)}</p>
        </div>
      </div>
    </div>
   </div>
  );
}

export default App;

Обновите “src/index.js” для добавления компонента провайдера для React Query:

import { StrictMode } from "react";
import { createRoot } from "react-dom/client";
import { QueryClient, QueryClientProvider, useQuery } from "react-query";
import App from "./App";
const queryClient = new QueryClient();
const rootElement = document.getElementById("root");
const root = createRoot(rootElement);

root.render(
  <StrictMode>
    <QueryClientProvider client={queryClient}>
      <App />
    </QueryClientProvider>
  </StrictMode>
);

Добавьте заголовок в “src/components/Header.js”:

import React from "react";
export default function Header(props) {
  return (
    <nav className="navbar navbar-dark bg-dark">
      <div className="container">
        <div className="row m-auto">
          <i className="fa fa-hand-pointer-o fa-2x text-white mr-2" />
          <div className="text-light h2" data-testid="title">
            {props.title}
          </div>
        </div>
      </div>
    </nav>
  );
}

Шаг 3: Запуск приложения

Выполните приведенную ниже команду в терминале:

npm start

Зайдите на http://localhost:3000 в браузере, чтобы посмотреть приложение с интеграцией React Query.

Заключение

Вы успешно реализовали React Query в базовом веб-приложении. Эта мощная библиотека упрощает получение данных и управление состояниями в React-приложениях, делая код более эффективным и удобным.

Источник


Report Page