Перенести работу с клиентов на ваш сервер легко с помощью серверных действий Next.

Версия 13.4 Next.js поставляется со стабильным маршрутизатором приложений и возможностью изменять данные с помощью действий сервера. Эта функция полностью меняет правила игры, поскольку позволяет полностью изменять данные из серверных компонентов. Это дает множество преимуществ в таких областях, как скорость, безопасность и общая производительность приложения.

Узнайте, что такое действия сервера и как использовать эту новую функцию в приложении Next.js.

Что такое действия сервера?

Серверные действия позволяют вам писать одноразовые серверные функции прямо рядом с вашими серверными компонентами. Это огромно, потому что вам больше не нужно писать маршруты API при отправке форм или выполнении любых других изменений данных, включая Мутации данных GraphQL.

У вас могут быть функции, которые выполняются на вашем сервере, а затем вы можете вызывать их из клиентских или серверных компонентов. Это альфа-функция в Next.js 13.4, и она построена поверх React Actions. Использование действий сервера приводит к уменьшению количества JavaScript на стороне клиента и может помочь вам создавать формы с постепенным улучшением.

instagram viewer

Пример действий сервера

С помощью действий сервера вы можете выполнять мутации внутри Next.js на сервере. Взгляните на эту новую функцию на примере страницы Next.js, которая отображает форму, позволяющую вам создать сообщение.

Вот импорт:

Импортировать Связь от"далее/ссылка"
Импортировать Группа Форм от"@/компоненты/группа форм"
Импортировать { перепроверить тег } от"следующий/кэш"
Импортировать { перенаправить } от"далее/навигация"

Теперь код для создания сообщения. Эта функция является действием сервера; он запускается на сервере и отправляет заголовок и тело сообщения в API (который создает сообщение в базе данных):

асинхронныйфункциясоздать сообщение(данные) {
"использовать сервер"
константа название = данные.получить("заголовок")
константа тело = данные.получить("тело")

Ждите принести(" http://127.0.0.1/posts", {
заголовок: {"Тип содержимого": "приложение/json"},
метод: ПОСТ,
тело: JSON.stringify({название, тело})
})

перепроверитьтег("сообщения")
перенаправить("/")
}

Эта функция получает заголовок и тело сообщения, которое затем отправляет в /posts конечная точка через POST-запрос. Затем он заставляет кэш обновлять содержимое, связанное с тегом «posts», и перенаправляет обратно на домашнюю страницу.

Вот форма для сбора нового заголовка и тела сообщения:

экспортпо умолчанию НоваяПостФорма() {
возвращаться (