Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: React, CRUD, state management, API, hooks

Как реализовать CRUD-функциональность в React-приложении?

Вопрос проверяет понимание управления состоянием и взаимодействия с API для создания, чтения, обновления и удаления данных в React-приложении.

Короткий ответ

CRUD в React реализуется через управление состоянием (useState) и выполнение HTTP-запросов (fetch/axios). Компоненты отображают данные, формы для создания/редактирования и кнопки для удаления. Состояние обновляется после успешного ответа от сервера, что обеспечивает синхронизацию UI с данными.

Длинный ответ

Основы CRUD в React

CRUD (Create, Read, Update, Delete) — это базовые операции с данными, которые реализуются в React через комбинацию локального состояния и асинхронных запросов к API. Обычно используется хук useState для хранения списка элементов и useEffect для первоначальной загрузки данных.

Пример реализации

Рассмотрим простое приложение для управления задачами. Компонент использует состояние для хранения списка задач и функций для каждой операции:

import React, { useState, useEffect } from 'react';

function TodoApp() {
  const [todos, setTodos] = useState([]);
  const [newTodo, setNewTodo] = useState('');

  useEffect(() => {
    fetch('/api/todos')
      .then(res => res.json())
      .then(data => setTodos(data));
  }, []);

  const addTodo = () => {
    fetch('/api/todos', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({ title: newTodo })
    })
      .then(res => res.json())
      .then(todo => setTodos([...todos, todo]));
  };

  const updateTodo = (id, title) => {
    fetch(`/api/todos/${id}`, {
      method: 'PUT',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({ title })
    })
      .then(res => res.json())
      .then(updated => setTodos(todos.map(t => t.id === id ? updated : t)));
  };

  const deleteTodo = (id) => {
    fetch(`/api/todos/${id}`, { method: 'DELETE' })
      .then(() => setTodos(todos.filter(t => t.id !== id)));
  };

  return (
    <div>
      <input value={newTodo} onChange={e => setNewTodo(e.target.value)} />
      <button onClick={addTodo}>Add</button>
      <ul>
        {todos.map(todo => (
          <li key={todo.id}>
            {todo.title}
            <button onClick={() => updateTodo(todo.id, 'Updated')}>Edit</button>
            <button onClick={() => deleteTodo(todo.id)}>Delete</button>
          </li>
        ))}
      </ul>
    </div>
  );
}

Ключевые моменты

  • Используйте useEffect для загрузки данных при монтировании компонента.
  • Для каждой операции (POST, PUT, DELETE) отправляйте соответствующий HTTP-запрос.
  • Обновляйте состояние только после получения ответа от сервера, чтобы избежать рассинхронизации.
  • Для сложных приложений рассмотрите использование Redux или React Query для управления состоянием и кэширования.

Вывод: CRUD в React — это стандартный паттерн, который легко реализовать с помощью хуков и fetch. Он подходит для любых приложений, где требуется взаимодействие с REST API, от простых списков задач до сложных панелей управления.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    5

  • Сложность:

    4

Навыки

  • JavaScript

    JavaScript

  • React

    React

Ключевые слова

#React

#CRUD

#state management

#API

#hooks

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию