inertia-vue-development
Supports development of Inertia.js Vue applications, including routing and form handling.
Install
mkdir -p .claude/skills/inertia-vue-development && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/15036" && unzip -o skill.zip -d .claude/skills/inertia-vue-development && rm skill.zipInstalls to .claude/skills/inertia-vue-development
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Develops Inertia.js v1 Vue client-side applications. Activates when creating Vue pages, forms, or navigation; using Link or router; or when user mentions Vue with Inertia, Vue pages, Vue forms, or Vue navigation.Key capabilities
- →Create Vue page components for Inertia.js v1
- →Implement client-side navigation using Inertia Links
- →Handle form submissions with `router.post`
- →Structure Vue components with a single root element
- →Use programmatic navigation with `router.visit`
- →Manage loading states during form submission
How it works
This skill provides guidelines and code snippets for developing client-side applications using Inertia.js v1 with Vue. It covers component structure, client-side navigation using `<Link>` and `router.visit`, and form handling with `router.post`, while highlighting limitations of v1.
Inputs & outputs
When to use inertia-vue-development
- →Create new Vue pages
- →Implement Inertia Link navigation
- →Handle form submissions
- →Structure Vue components for Inertia
About this skill
Inertia Vue Development
When to Apply
Activate this skill when:
- Creating or modifying Vue page components for Inertia
- Working with forms in Vue (using
router.post) - Implementing client-side navigation with
<Link>orrouter - Building Vue-specific features with the Inertia protocol
Documentation
Use search-docs for detailed Inertia v1 Vue patterns and documentation.
Basic Usage
Page Components Location
Vue page components should be placed in the resources/js/Pages directory.
Page Component Structure
Important: Vue components must have a single root element.
<code-snippet name="Basic Vue Page Component" lang="vue"> <script setup> defineProps({ users: Array }) </script> <template> <div> <h1>Users</h1> <ul> <li v-for="user in users" :key="user.id"> {{ user.name }} </li> </ul> </div> </template> </code-snippet>Client-Side Navigation
Basic Link Component
Use <Link> for client-side navigation instead of traditional <a> tags:
Link With Method
<code-snippet name="Link With POST Method" lang="vue"> <script setup> import { Link } from '@inertiajs/vue3' </script> <template> <Link href="/logout" method="post" as="button"> Logout </Link> </template> </code-snippet>Programmatic Navigation
<code-snippet name="Router Visit" lang="vue"> <script setup> import { router } from '@inertiajs/vue3' function handleClick() { router.visit('/users') } // Or with options function createUser() { router.visit('/users', { method: 'post', data: { name: 'John' }, onSuccess: () => console.log('Success!'), }) } </script> </code-snippet>Form Handling
Using router.post
<code-snippet name="Form with router.post" lang="vue">
<script setup>
import { router } from '@inertiajs/vue3'
import { reactive, ref } from 'vue'
const form = reactive({
name: '',
email: '',
})
const processing = ref(false)
function handleSubmit() {
processing.value = true
router.post('/users', form, {
onFinish: () => processing.value = false,
})
}
</script>
<template>
<form @submit.prevent="handleSubmit">
<input type="text" v-model="form.name" />
<input type="email" v-model="form.email" />
<button type="submit" :disabled="processing">
Create User
</button>
</form>
</template>
</code-snippet>
Inertia v1 Limitations
Inertia v1 does not support these v2 features:
<Form>component- Deferred props
- Prefetching
- Polling
- Infinite scrolling with
WhenVisible - Merging props
Do not use these features in v1 projects.
Server-Side Patterns
Server-side patterns (Inertia::render, props, middleware) are covered in inertia-laravel guidelines.
Common Pitfalls
- Using traditional
<a>links instead of Inertia's<Link>component (breaks SPA behavior) - Using multiple root elements in Vue components (while Vue 3 supports this, a single root is recommended for Inertia v1 compatibility)
- Trying to use Inertia v2 features (deferred props,
<Form>component, etc.) in v1 projects - Using
<form>without preventing default submission (use@submit.prevent) - Not handling loading states during form submission
When not to use it
- →When using traditional `<a>` links instead of Inertia's `<Link>` component
- →When using multiple root elements in Vue components for Inertia v1
- →When trying to use Inertia v2 features in v1 projects
Limitations
- →Does not support Inertia v2 features like `<Form>` component or deferred props
- →Requires Vue components to have a single root element for Inertia v1 compatibility
- →Server-side patterns are covered in `inertia-laravel` guidelines
How it compares
This skill provides specific patterns for Inertia.js v1 Vue development, including navigation and form handling, unlike general Vue development or Inertia v2 projects.
Compared to similar skills
inertia-vue-development side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| inertia-vue-development (this skill) | 0 | 6mo | No flags | Beginner |
| ui | 4 | 1mo | Review | Intermediate |
| web-development | 5 | 2mo | No flags | Intermediate |
| webf-quickstart | 1 | 7mo | Review | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
ui
nuxt
Build UIs with @nuxt/ui v4 — 125+ accessible Vue components with Tailwind CSS theming. Use when creating interfaces, customizing themes to match a brand, building forms, or composing layouts like dashboards, docs sites, and chat interfaces.
web-development
TencentCloudBase
Web frontend project development rules. Use this skill when developing web frontend pages, deploying static hosting, and integrating CloudBase Web SDK.
webf-quickstart
openwebf
Get started with WebF development - setup WebF Go, create a React/Vue/Svelte project with Vite, and load your first app. Use when starting a new WebF project, onboarding new developers, or setting up development environment.
comprehensive-testing-verification
ananddtyagi
MASTER Vue.js application testing with strict enforcement of verification protocols. Systematically test functionality with Playwright, validate bug fixes, verify features work, and enforce zero-tolerance policies for false success claims. MANDATORY testing with visual evidence before any deployment or functionality claims.
vueuse-motion-skilld
AdrianArenal
Vue Composables putting your components in motion. ALWAYS use when writing code importing \"@vueuse/motion\". Consult for debugging, best practices, or modifying @vueuse/motion, vueuse/motion, vueuse motion, motion.
nuxt
Raya46
Nuxt full-stack Vue framework with SSR, auto-imports, and file-based routing. Use when working with Nuxt apps, server routes, useFetch, middleware, or hybrid rendering.