vue-expert

Implements Vue 3.5 Composition API patterns, Pinia stores, Vue Router 4, and Nuxt 4 applications.

Updated Apr 13, 2026
One-click install
npx skills add https://github.com/JenilRevaliya/ARGUS --skill vue-expert-jenilrevaliya
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: vue-expert
Source: https://github.com/JenilRevaliya/ARGUS/tree/main/.agent/skills/vue-expert
Command: npx skills add https://github.com/JenilRevaliya/ARGUS --skill vue-expert-jenilrevaliya

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Developers building Vue or Nuxt applications often fall into outdated patterns like the Options API, misuse reactivity primitives, or hit subtle traps with defineModel, watchers, and store destructuring. This Skill provides a dense, trap-aware reference for writing correct Vue 3.5+ and Nuxt 4 code. ## Core Features & Use Cases - Composition API Patterns: Covers script setup, defineProps, defineEmits, defineModel, refs, computed, watchers, and composables with correct usage and common mistakes. - State & Routing: Provides Pinia setup-store syntax with storeToRefs and persistence, plus Vue Router 4 lazy routes, guards, and navigation. - Nuxt 4 Guidance: Explains auto-imports, file-based routing, server routes, and useFetch pitfalls unique to Nuxt. - Use Case: When building a dashboard with async data fetching, use this Skill to write a Suspense-ready component with a typed composable and a persisted Pinia store without reactivity bugs. ## Quick Start Ask the AI to build a Vue 3 component with a Pinia store and Vue Router navigation using the Composition API.

Frequently Asked Questions about vue-expert

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I use defineModel in Vue 3 for two-way binding?▼

defineModel creates a v-model binding in script setup without manual props and emits. Call const modelValue = defineModel<string>() for the default model, or pass a name like defineModel<number>("count") for named models. It requires Vue 3.4 or later.

How to create a Pinia store with the Composition API?▼

Use defineStore with a setup function returning refs, computed values, and functions. In components, destructure reactive state via storeToRefs(store) since direct destructuring loses reactivity. Add pinia-plugin-persistedstate to persist store state.

What is the difference between ref and reactive in Vue 3?▼

ref wraps any value and is accessed via .value in JavaScript but auto-unwraps in templates. reactive only works on objects and loses reactivity when reassigned or destructured, so ref is preferred for primitives and replaceable values.

Does Nuxt 4 auto-import composables and Vue functions?▼

Yes, Nuxt 4 auto-imports Vue functions like ref and computed, Nuxt utilities like useRoute and useFetch, and any files in the composables directory by filename. Explicit imports are unnecessary in pages and components.

Why does my Vue watcher not fire on a reactive object property?▼

Watching a primitive property directly like watch(state.count, ...) fails because the value is not reactive. Use a getter function instead: watch(() => state.count, callback), which tracks the dependency correctly.

When should I use useFetch versus useAsyncData in Nuxt?▼

useFetch is a convenience wrapper around useAsyncData for URL-based fetching with options like lazy, server, and transform. useAsyncData suits arbitrary async logic but requires a unique key per page or component to avoid cache collisions.