Ответ
CRUD (Create, Read, Update, Delete) реализуется через HTTP-методы и RESTful API:
- Create (POST) - создание ресурса
fetch('/api/users', {
method: 'POST',
body: JSON.stringify({ name: 'John' })
});
- Read (GET) - получение данных
fetch('/api/users/123') // GET по умолчанию
.then(res => res.json());
- Update (PUT/PATCH) - полное/частичное обновление
fetch('/api/users/123', {
method: 'PATCH',
body: JSON.stringify({ name: 'Updated' })
});
- Delete (DELETE) - удаление
fetch('/api/users/123', { method: 'DELETE' });
На клиенте часто используют:
- Нативные
fetchилиXMLHttpRequest - Библиотеки (Axios, React Query)
- State-менеджеры (Redux, MobX) для синхронизации UI с сервером
Важно обрабатывать ошибки и индикаторы загрузки. В современных SPA CRUD часто реализуют через GraphQL или WebSockets для real-time обновлений.
Ответ 18+ 🔞
Да ты посмотри, какая простая хуйня, а сколько народу голову ломает! CRUD, блядь, это ж основа основ, как хлеб с маслом. Сейчас разжуем, чтоб ни один чих-пых не остался.
Ну вот смотри, вся эта ваша крудо-малина — это просто четыре действия над данными, обёрнутые в HTTP-запросы. Представь, что у тебя есть список пользователей на сервере, и ты с ним как царь, можешь всё.
1. Create — Создать (POST) Это когда ты, сука, нового юзера в базу суёшь. Как ребёнка зачинаешь, только запросом.
fetch('/api/users', {
method: 'POST', // Говоришь: "Слушай, я тут нового привёл"
body: JSON.stringify({ name: 'Vasya' }) // А вот и сам Вася, завёрнутый в строку
});
Отправил — и хоп, на сервере новый объект. Родился, блядь.
2. Read — Прочитать (GET) А это когда тебе просто посмотреть надо. Ничего не меняешь, не трогаешь, просто смотришь. Самый безобидный запрос.
fetch('/api/users/123') // "Дай-ка мне пользователя под номером 123"
.then(res => res.json()); // А потом распакуй его из JSON, как пельмени из пачки
3. Update — Обновить (PUT/PATCH) Вот тут начинается магия. Захотел Васе имя поменять с "Vasya" на "Vasiliy Petrovich". Есть два пути, как ебать козла:
- PUT — это когда ты выкидываешь всего старого Васю и на его место ставишь нового, полностью собранного. Жестоко, но эффективно.
- PATCH — а это по-хитрому, точечно. "Слушай, у Васи только имя поменяй, а всё остальное оставь".
fetch('/api/users/123', { method: 'PATCH', // Точечный апдейт body: JSON.stringify({ name: 'Updated' }) // "Вот, держи новое имя, остальное как было" });
4. Delete — Удалить (DELETE) Ну а это совсем просто. Нашел — и в топку.
fetch('/api/users/123', { method: 'DELETE' }); // "Юзер 123, свободен. Сгинь."
И всё, нет его. В рот меня чих-пых, как будто и не было.
А на клиенте, чтобы эту всю кашу месить, народ использует кто во что горазд:
- Нативный
fetch— это как голыми руками, но работает, ёпта. - Библиотеки типа Axios — уже с удобными ручками, чтоб не обосраться с промисами.
- State-менеджеры (Redux, MobX) — это для параноиков, которые хотят, чтобы UI и сервер жили, как сиамские близнецы, в идеальной синхронии.
И главное, блядь, не забудь про индикаторы загрузки и обработку ошибок! А то пользователь ткнёт кнопку "Сохранить", а у тебя тишина — он двадцать раз ткнёт, а потом окажется, что двадцать одинаковых Васей в базе. Пиздец, а не приложение.
Ну а щас модно уже не на REST, а на GraphQL или WebSockets переходить, чтобы всё в реальном времени летало. Но суть-то, блядь, одна: создать, прочитать, обновить, удалить. Всё остальное — просто красивая обёртка вокруг этой простой, как три копейки, логики.