Перенести работу с клиентов на ваш сервер легко с помощью серверных действий Next.
Версия 13.4 Next.js поставляется со стабильным маршрутизатором приложений и возможностью изменять данные с помощью действий сервера. Эта функция полностью меняет правила игры, поскольку позволяет полностью изменять данные из серверных компонентов. Это дает множество преимуществ в таких областях, как скорость, безопасность и общая производительность приложения.
Узнайте, что такое действия сервера и как использовать эту новую функцию в приложении Next.js.
Что такое действия сервера?
Серверные действия позволяют вам писать одноразовые серверные функции прямо рядом с вашими серверными компонентами. Это огромно, потому что вам больше не нужно писать маршруты API при отправке форм или выполнении любых других изменений данных, включая Мутации данных GraphQL.
У вас могут быть функции, которые выполняются на вашем сервере, а затем вы можете вызывать их из клиентских или серверных компонентов. Это альфа-функция в Next.js 13.4, и она построена поверх React Actions. Использование действий сервера приводит к уменьшению количества JavaScript на стороне клиента и может помочь вам создавать формы с постепенным улучшением.
Пример действий сервера
С помощью действий сервера вы можете выполнять мутации внутри Next.js на сервере. Взгляните на эту новую функцию на примере страницы Next.js, которая отображает форму, позволяющую вам создать сообщение.
Вот импорт:
Импортировать Связь от"далее/ссылка"
Импортировать Группа Форм от"@/компоненты/группа форм"
Импортировать { перепроверить тег } от"следующий/кэш"
Импортировать { перенаправить } от"далее/навигация"
Теперь код для создания сообщения. Эта функция является действием сервера; он запускается на сервере и отправляет заголовок и тело сообщения в API (который создает сообщение в базе данных):
асинхронныйфункциясоздать сообщение(данные) {
"использовать сервер"
константа название = данные.получить("заголовок")
константа тело = данные.получить("тело")Ждите принести(" http://127.0.0.1/posts", {
заголовок: {"Тип содержимого": "приложение/json"},
метод: ПОСТ,
тело: JSON.stringify({название, тело})
})
перепроверитьтег("сообщения")
перенаправить("/")
}
Эта функция получает заголовок и тело сообщения, которое затем отправляет в /posts конечная точка через POST-запрос. Затем он заставляет кэш обновлять содержимое, связанное с тегом «posts», и перенаправляет обратно на домашнюю страницу.
Вот форма для сбора нового заголовка и тела сообщения:
экспортпо умолчанию НоваяПостФорма() {
возвращаться (