Серверные действия в React 19 и Next.js
Разберитесь, как серверные действия выполняются на сервере, замыкают серверный контекст и возвращают данные клиенту
«Серверные действия в React 19 и Next.js» — бесплатный урок React Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения React Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс React Academy содержит 4 уроков всего.
Что такое серверные действия
Серверные действия — это асинхронные функции, выполняющиеся на сервере, а не в браузере. Они помечаются директивой 'use server', размещённой в начале файла или в начале тела функции, чтобы сообщить фреймворку, что эта функция никогда не должна выполняться на стороне клиента.
Доступ к серверному контексту
Поскольку серверные действия выполняются на сервере, у них есть доступ ко всему серверному контексту: подключениям к базе данных, секретам окружения, данным сеанса и ресурсам файловой системы. Это принципиально отличается от клиентских компонентов, которым доступно только то, что предоставляет браузер.
Как работает транспорт HTTP
Когда клиентский компонент вызывает серверное действие, Next.js автоматически отправляет HTTP-запрос POST на специальную конечную точку RSC. Фреймворк берет на себя сериализацию всех аргументов и транспортный уровень, поэтому Вам не нужно вручную писать вызовы получения данных для таких операций изменения данных.
Маршрут API не требуется
Серверные действия во многих сценариях изменения данных заменяют маршруты API. Само действие является конечной точкой: Вы определяете логику один раз в виде серверной функции, а затем вызываете ее непосредственно из клиентского компонента, как локальную функцию.
Полноценная возможность React 19
Изначально серверные действия были концепцией, специфичной для Next.js, но React 19 сделал их полноценной возможностью React. Это означает, что сборщики и фреймворки, отличные от Next.js, могут реализовать тот же подход в соответствии со спецификацией React.
Стабильность и доступность
В React 19 RC серверные действия являются экспериментальными, но в маршрутизаторе приложения Next.js 14+ они стабильны с момента появления. Если сегодня Вы создаете рабочее приложение с маршрутизатором приложения Next.js, серверные действия являются полностью поддерживаемым и рекомендуемым подходом.
Безопасность: секреты остаются на сервере
Одно из важнейших свойств безопасности серверных действий заключается в том, что секреты никогда не попадают в браузер. Переменные окружения, такие как пароли базы данных и ключи API, используемые внутри серверного действия, никогда не включаются в клиентскую сборку, поскольку тело функции не отправляется в браузер.
Формы и серверные действия
Элементы формы HTML напрямую принимают серверное действие через атрибут action: <form action={myServerAction}>. React перехватывает отправку формы и вызывает серверное действие с данными формы, обеспечивая изменение данных на сервере без дополнительной клиентской логики на JavaScript.
Цикл запроса и ответа
При вызове серверного действия React сериализует его аргументы в тело запроса POST. Сервер десериализует их, выполняет функцию, сериализует возвращаемое значение и отправляет его обратно. Через эту границу могут передаваться только сериализуемые значения: строки, числа, массивы и простые объекты.
Определение серверного действия
Вы можете определить серверное действие на уровне модуля в файле, поместив в его начало 'use server', или встроить его в серверный компонент, поместив 'use server' в начало асинхронной функции. Оба подхода дают один и тот же результат: вызываемую только на сервере функцию.
Вызов из клиентских компонентов
Клиентские компоненты импортируют и вызывают серверные действия так же, как обычные асинхронные функции. Синтаксис вызова идентичен вызову локальной асинхронной функции, но выполнение полностью происходит на сервере. Эта абстракция позволяет сделать клиентские компоненты чистыми и избавить их от шаблонного кода для получения данных.
Вопрос о модели безопасности
Какое из следующих утверждений лучше всего описывает модель безопасности серверных действий?
Повторение урока
Серверные действия — это асинхронные функции на стороне сервера, отмеченные с помощью 'use server'. Они замыкают серверный контекст, например подключения к базе данных и секреты окружения. Next.js автоматически обрабатывает транспорт HTTP, а React 19 превращает их в возможность, не зависящую от фреймворка. Формы могут напрямую использовать их через атрибут действия, а содержащиеся в них секреты никогда не попадают в браузер.
Часто задаваемые вопросы
Урок «Серверные действия в React 19 и Next.js» бесплатный?
Да — полный текст урока «Серверные действия в React 19 и Next.js» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс React Academy, подпишись на CoddyKit PRO. Курс React Academy содержит 4 уроков всего.
Чему я научусь в уроке «Серверные действия в React 19 и Next.js»?
Разберитесь, как серверные действия выполняются на сервере, замыкают серверный контекст и возвращают данные клиенту Ты практикуешь React Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать React Academy?
Предыдущий опыт не требуется. React Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Серверные действия в React 19 и Next.js»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке React Academy?
Да. Каждый урок React Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Серверные действия в React 19 и Next.js
- Действия форм: замена маршрутов API для мутаций
- useActionState и useFormStatus
- Прогрессивное улучшение с серверными действиями