РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗jsnuPmFmFS 77 of 84 menu
◀ ▶

Отправка формы в Nuxt

Когда пользователь нажимает кнопку отправки, браузер по умолчанию перезагружает страницу. В SPA нам нужно перехватить это событие, собрать значения полей и отправить их на наш API без перезагрузки.

На стороне Nuxt обработчик лежит в server/api/notes.post.js. Имя файла задаёт метод HTTP и сегмент пути: запрос POST на /api/notes попадёт в эту функцию. Тело запроса читают через readBody, после чего можно вернуть JSON клиенту.

Давайте изучим серверную часть для сохранения заголовка заметки:

export default defineEventHandler(async (event) => { const body = await readBody(event); return { title: body.title, }; });

На странице создадим форму с одним полем и привяжем его к переменной через v-model. Обработчик submit вешаем с модификатором prevent, чтобы отменить стандартное поведение. Внутри вызовем $fetch с методом POST и телом body:

<script setup> const title = ref(''); async function submitForm() { await $fetch('/api/notes', { method: 'POST', body: { title: title.value }, }); } </script> <template> <form @submit.prevent="submitForm"> <input v-model="title" type="text"> <button type="submit"> Save </button> </form> </template>

После отправки сервер вернёт объект с тем же title. Пока мы не выводим ответ на экран - важно, что запрос доходит до notes.post.js и данные не теряются при перехвате формы.

Сделайте страницу с формой, которая отправляет имя сотрудника на ваш API методом POST.

Сделайте обработчик API, который принимает имя сотрудника в теле запроса и возвращает его в ответе.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить