← Zurück zu Team für Electron und Vue
Entdecke, wie der Skill hilft
1. Check the installed
Inertia, Laravel und Vue
Koordiniert Laravel-Seitendaten, Vue-Bearbeitung und Inertia-Navigation ohne Verlust lokaler Arbeit oder Berechtigungsgrenzen.
inertia-laravel-vue
Teammitglieder mit diesem Skill
Wann ist der Skill hilfreich?
Nutze ihn bei unerwartetem Verhalten von Formularen, Teilaktualisierungen oder gemeinsamen Props in Inertia-Anwendungen.
Wobei hilft er dir?
- Passt Inertia-Funktionen an installierte Client- und Serverversionen an.
- Belässt Page-Props beim Server und bearbeitet explizite Entwürfe.
- Koordiniert Teilnavigation, Formularfehler und serverseitige Berechtigungen.
Das könntest du fragen
Erhalte ungespeicherte Formularänderungen bei einer partiellen Inertia-Aktualisierung. Aktualisiere serverseitige Summen während einer Adressbearbeitung. Der Adressentwurf bleibt erhalten; Fehler einer abgewiesenen Speicherung landen an den passenden Feldern.
Ausführliche Dokumentation
Hier findest du die ursprüngliche Anleitung, Beispiele und Prüfschritte des Skills in ihrer Originalsprache.
Weniger anzeigen
Inertia & Laravel Integration
Align Laravel server responses, Inertia navigation, validation errors and local Vue UI state into a seamless single-page experience.
1. Check the installed @inertiajs/vue3 version first
- Inspect
package.jsonandcomposer.json(inertiajs/inertia-laravel):- Inertia v2 adds
<Form>,<Deferred>,<WhenVisible>,usePoll, prefetching (<Link prefetch>) andInertia::optional()/Inertia::defer()/Inertia::merge(). - Inertia v1 uses
useForm,<Link>,routerandInertia::lazy()without<Deferred>or<Form>. Never use v2-only components in a v1 project.
- Inertia v2 adds
2. Page props, shared data and state ownership
- Treat Inertia page props as server-owned state passed from the Laravel controller (
Inertia::render()). Define a typeddefineProps<PageProps>()contract matching the controller's payload and API resources. - Access global shared data (authenticated user, flash messages, permissions, locale) via
const page = usePage<SharedProps>()and derive reactive values withcomputed(() => page.props.auth.user). - Never mutate page props directly. When a user edits server data locally, initialize a
useForm(...)or local draftref, and decide deliberately when a fresh prop update should reset or preserve the local draft. - Remember that hiding a button in Vue based on
page.props.canis UX convenience only; real authorization lives in Laravel Policies/Gates on the server.
3. Navigation, partial reloads and deferred data
- Use
<Link :href="...">(or<Link as="button" method="post">) for internal navigation instead of raw<a href>tags that trigger full page reloads, androuter.visit()/router.get()for programmatic navigation. - For filter/search/sort bars driven by the server, use
router.get(url, filters, { preserveState: true, preserveScroll: true, replace: true, only: ['items', 'filters'] }), debouncing text inputs and canceling stale visits Automatically via Inertia's built-in visit cancellation. - Use partial reloads (
only: ['stats']orexcept: [...]) to refresh specific props without re-executing heavy queries when the server wraps expensive props infn () => ...orInertia::optional(). - In Inertia v2, wrap deferred controller props (
Inertia::defer(...)) in<Deferred data="permissions"><template #fallback>...</template>...</Deferred>with a skeleton fallback so the initial page renders immediately.
4. Forms, validation errors and submission feedback
- Use
useForm({ ... })(or Inertia v2's<Form>component where matches project conventions) for mutations (form.post,form.put,form.patch,form.delete):- Bind submit buttons to
:disabled="form.processing"to prevent double submissions and show progress feedback. - Display server validation errors inline via
form.errors.field(aria-invalid,aria-describedby), and clear or reset fields deliberately inonSuccess: () => form.reset()(orpreserveScroll: trueon error). - Use
form.isDirtyto warn before discarding unsaved changes, and pass a unique remember key (useForm('EditProject:' + props.project.id, { ... })) when form state should survive back/forward history navigation.
- Bind submit buttons to
Before you finish
- Verified
@inertiajs/vue3version (v1 vs v2) and matched the project's route helper convention (Wayfinder, Ziggyroute()or explicit URLs). - Page props and
usePage()shared data are typed and never mutated directly. - Forms handle
form.processing, inlineform.errors,preserveScrolland post-success reset/feedback cleanly. -
preserveStateandpreserveScrollare chosen deliberately for the user's workflow.
Enthaltene Dateien 2
LICENSE.txtSKILL.md
