Прехвърлянето на работа от клиенти към вашия сървър е лесно със сървърните действия на Next.

Изданието 13.4 на Next.js дойде със стабилен рутер за приложения и възможност за мутация на данни с действия на сървъра. Тази функция е абсолютна промяна на играта, защото ви позволява да извършвате мутации на данни изцяло от сървърни компоненти. Това носи множество предимства в области като скорост, сигурност и цялостна производителност на приложението.

Научете какви са действията на сървъра и как да използвате тази нова функция във вашето приложение Next.js.

Какво представляват действията на сървъра?

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

Можете да имате функции, които се изпълняват на вашия сървър, и след това можете да ги извиквате от клиентски или сървърни компоненти. Това е алфа функция в Next.js 13.4 и е изградена върху React Actions. Използването на сървърни действия води до намален JavaScript от страна на клиента и може да ви помогне да създавате прогресивно подобрени формуляри.

instagram viewer

Пример за действия на сървъра

С действията на сървъра можете да извършвате мутации вътре в Next.js, на сървъра. Разгледайте тази нова функция с примерна страница Next.js, която изобразява формуляр, позволяващ ви да създадете публикация.

Ето вноса:

импортиране Връзка от"следваща/връзка"
импортиране FormGroup от"@/components/FormGroup"
импортиране {revalidateTag} от"следващ/кеш"
импортиране { пренасочване } от"следващ/навигация"

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

асинхроненфункцияcreatePost(данни) {
"използване на сървър"
конст заглавие = data.get("заглавие")
конст тяло = data.get("тяло")

изчакайте извличане (" http://127.0.0.1/posts", {
заглавка: {"Тип съдържание": "приложение/json"},
метод: POST,
тяло: JSON.stringify({заглавие, тяло})
})

revalidateTag("постове")
пренасочване("/")
}

Тази функция получава заглавието и тялото на публикацията, които след това изпраща на /posts крайна точка чрез POST заявка. След това принуждава кеша да опресни съдържанието, свързано с маркера „posts“, и пренасочва обратно към началната страница.

Ето формуляр за събиране на заглавието и тялото на новата публикация:

износпо подразбиране NewPostForm() {
връщане (