Вопрос проверяет понимание управления состоянием и взаимодействия с API для создания, чтения, обновления и удаления данных в 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 для загрузки данных при монтировании компонента.Вывод: CRUD в React — это стандартный паттерн, который легко реализовать с помощью хуков и fetch. Он подходит для любых приложений, где требуется взаимодействие с REST API, от простых списков задач до сложных панелей управления.
Уровень
Рейтинг:
5
Сложность:
4
Навыки
JavaScript
React
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию