Inertia 2.3 додає підтримку Precognition

0
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 13 грудня, 2025
Inertia v2.3 додає підтримку Laravel Precognition у компоненті Form та у хуці useForm — тепер клієнтська валідація працює за правилами, визначеними в Laravel, без додаткових пакетів. Дізнайтеся, як використовувати методи valid()/invalid(), validate() та withPrecognition() для миттєвої перевірки полів на клієнті

Вийшла Inertia v2.3 — у пакет додали підтримку Laravel Precognition для компонента Form та хелпера useForm() "з коробки". Тепер набагато простіше робити валідацію форм на фронтенді за правилами валідації Laravel.

Додаткові пакети більше не потрібні. 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