Вийшла Inertia v2.3 — у пакет додали підтримку Laravel Precognition для компонента Form та хелпера useForm() "з коробки". Тепер набагато простіше робити валідацію форм на фронтенді за правилами валідації Laravel.
Сьогодні ми додаємо Precognition до компонента Form! 🔮
— Inertia.js (@inertiajs) December 11, 2025
І не лише в компоненті — ми також вбудовуємо його в useForm() "з коробки". Більше не потрібні додаткові пакети. pic.twitter.com/nPRGTyQ7mf
Додаткові пакети більше не потрібні. Laravel Precognition забезпечує live validation (серед іншого) для фронтенду, використовуючи бекенд‑правила валідації. Він проходить через middleware маршруту і виконує валідацію, не запускаючи код контролера.
# Компонент Form
Компонент Form тепер має вбудовану підтримку Precognition і корисні методи на кшталт valid() та invalid():
<template>
<Form action="/users" method="post" #default="{ errors, invalid, validate, validating }">
<div>
<input name="name" @change="validate('name')" />
<p v-if="invalid('name')"> {{ errors.name }} </p>
</div>
<div>
<input name="email" @change="validate('email')" />
<p v-if="invalid('email')"> {{ errors.email }} </p>
</div>
<p v-if="validating">Validating...</p>
</Form>
</template>
У релізі є й інші опції та налаштування. Деталі реалізації — у Pull Request #2700. Документація покаже, як почати роботу з Precognition у <Form/> компоненті: документація.
# Хелпер useForm()
Precognition можна підключити до хелпера useForm() через метод withPrecognition(), наприклад:
import { useForm } from '@inertiajs/vue3'
const form = useForm({
name: '',
email: '',
}).withPrecognition('post', '/users')
Деталі реалізації — у Pull Request #2684, а інструкція по використанню Precognition з useForm() — у документації.
# Release notes
Повний список нових фіч і змін дивіться нижче та diff між 2.2.21 і 2.3.0 на GitHub. Наведені далі нотатки — прямо з changelog:
# v2.3.0
- Support for Precognition in
useForm()by @pascalbaljet in https://github.com/inertiajs/inertia/pull/2684 - Support for Precognition in
<Form>component by @pascalbaljet in https://github.com/inertiajs/inertia/pull/2700 - Improve Precognition examples in Playgrounds by @pascalbaljet in https://github.com/inertiajs/inertia/pull/2746
- Improve flaky tests by @pascalbaljet in https://github.com/inertiajs/inertia/pull/2747
- bugfix(whenVisible-vue): Fix loaded state when data already exists by @ClaraLeigh in https://github.com/inertiajs/inertia/pull/2748