INLINE CRUD ЛОМАЕТ НЕ БАЗУ, А ОБВЯЗКУ
Когда в Next.js появляются создание, переименование и удаление прямо в интерфейсе, ручной API быстро начинает разрастаться.
Route handler, fetch, pending/error/success, обработка Enter, blur, Escape, закрытие редактора — и вот уже код крутится вокруг транспорта, а не вокруг задачи.
Проблема не в том, что API «плохой». Проблема в лишних промежуточных слоях между формой и записью данных. Для inline-редактирования это особенно заметно: чем больше экранов и форм, тем сильнее хочется одну предсказуемую write-точку.
Server Actions в App Router как раз про это.
Форма получает `action`, сервер принимает `FormData`, возвращает типизированное состояние, а на клиенте остаётся простой цикл: `state → formAction → isPending`.
Без отдельного endpoint'а. Без ручной синхронизации ответа. Без дублирования логики для каждого поля.
Для сценариев вроде переименования проекта, удаления секции или создания заметки это не «магия», а сокращение лишнего кода вокруг действия. И чем меньше обвязки, тем легче видеть сам job: быстро и без ошибок изменить запись.
JTBD Notes
@JTBDNotesPro
INLINE CRUD ЛОМАЕТ НЕ БАЗУ, А ОБВЯЗКУ
Этот пост опубликован в Telegram-канале JTBD Notes. Подписаться можно по ссылке: @JTBDNotesPro.