Skip to content

How to use Vue Expert skill in Claude Code for frontend development

Purpose

This post demonstrates how to use the Vue Expert skill in Claude Code for frontend development tasks.

Environment

  • Claude Code (latest version)
  • Vue.js 3.x
  • Node.js 18+
  • claude-skills plugin

What is Vue Expert?

Vue Expert is a specialized skill in the claude-skills ecosystem that provides focused assistance for Vue.js development. When I work with Vue projects, this skill helps me with:

  • Component architecture and design patterns
  • Composition API best practices
  • State management with Pinia
  • Routing with Vue Router
  • Performance optimization
  • TypeScript integration

The skill activates when I use specific trigger phrases like “/vue-expert” or “Use vue-expert skill” during my Claude Code sessions.

Installation and Setup

First, I need to install the claude-skills plugin. I run this command:

Terminal window
npm install -g @jeffallan/claude-skills

Then I verify the installation:

Terminal window
claude-skills --version

I should see the version number, which confirms the plugin is installed correctly.

To activate Vue Expert, I simply use it in my Claude Code session. There’s no separate installation step for individual skills - they’re all part of the claude-skills package.

Core Usage Patterns

When I start working on a Vue project, I can invoke Vue Expert in several ways:

Direct invocation:

Use vue-expert skill to help me create a new Vue component

Slash command:

/vue-expert

Contextual trigger:

I'm building a Vue 3 app with TypeScript. Can you help me structure my components?

Claude Code will recognize the Vue context and automatically apply the Vue Expert skill’s knowledge and patterns.

Practical Examples

Example 1: Creating a Component

When I ask Vue Expert to create a component:

Use vue-expert to create a user profile component with props and emits

The skill provides a complete, idiomatic Vue 3 component using the Composition API:

UserProfile.vue
<script setup lang="ts">
import { ref, computed } from 'vue'
interface Props {
userId: string
showEmail?: boolean
}
interface Emits {
(e: 'update', userId: string): void
(e: 'delete'): void
}
const props = withDefaults(defineProps<Props>(), {
showEmail: true
})
const emit = defineEmits<Emits>()
const user = ref<User | null>(null)
const loading = ref(false)
const initials = computed(() => {
return user.value?.name
.split(' ')
.map(n => n[0])
.join('')
.toUpperCase()
})
</script>
<template>
<div class="user-profile">
<div v-if="loading">Loading...</div>
<div v-else-if="user">
<h3>{{ user.name }}</h3>
<p v-if="showEmail">{{ user.email }}</p>
<button @click="emit('update', user.id)">Edit</button>
<button @click="emit('delete')">Delete</button>
</div>
</div>
</template>

The component follows Vue 3 best practices:

  • Uses <script setup> syntax
  • Properly typed props with TypeScript
  • Explicit emit definitions
  • Computed properties for derived state
  • Conditional rendering with v-if

Example 2: State Management Pattern

When I need to set up a Pinia store:

Use vue-expert to create a cart store with Pinia

Vue Expert provides a well-structured store:

stores/cart.ts
import { defineStore } from 'pinia'
import { ref, computed } from 'vue'
export const useCartStore = defineStore('cart', () => {
// State
const items = ref<CartItem[]>([])
const discount = ref(0)
// Getters
const subtotal = computed(() =>
items.value.reduce((sum, item) => sum + item.price * item.quantity, 0)
)
const total = computed(() =>
subtotal.value * (1 - discount.value / 100)
)
const itemCount = computed(() =>
items.value.reduce((sum, item) => sum + item.quantity, 0)
)
// Actions
function addItem(product: Product) {
const existing = items.value.find(i => i.id === product.id)
if (existing) {
existing.quantity++
} else {
items.value.push({ ...product, quantity: 1 })
}
}
function removeItem(itemId: string) {
const index = items.value.findIndex(i => i.id === itemId)
if (index > -1) {
items.value.splice(index, 1)
}
}
function clear() {
items.value = []
discount.value = 0
}
return {
items,
discount,
subtotal,
total,
itemCount,
addItem,
removeItem,
clear
}
})

The store follows the Composition API style recommended in Vue 3, with state, getters, and actions clearly organized.

Example 3: Router Configuration

When I set up Vue Router:

Use vue-expert to configure Vue Router with route guards

Vue Expert provides a secure routing setup:

router/index.ts
import { createRouter, createWebHistory } from 'vue-router'
import { useAuthStore } from '@/stores/auth'
const router = createRouter({
history: createWebHistory(),
routes: [
{
path: '/',
name: 'home',
component: () => import('@/views/HomeView.vue')
},
{
path: '/dashboard',
name: 'dashboard',
component: () => import('@/views/DashboardView.vue'),
meta: { requiresAuth: true }
},
{
path: '/login',
name: 'login',
component: () => import('@/views/LoginView.vue')
}
]
})
router.beforeEach((to, from, next) => {
const auth = useAuthStore()
if (to.meta.requiresAuth && !auth.isAuthenticated) {
next({ name: 'login', query: { redirect: to.fullPath } })
} else {
next()
}
})
export default router

The configuration includes lazy-loaded components and authentication guards.

Best Practices

DO ✓

Use Vue Expert for:

  • Vue 3 Composition API code
  • Component architecture decisions
  • Pinia store design
  • Vue Router configuration
  • TypeScript integration with Vue
  • Performance optimization
  • Testing strategies with Vitest

Trigger the skill when:

  • Starting new Vue features
  • Refactoring Vue components
  • Debugging Vue-specific issues
  • Setting up project structure
  • Implementing state management

Provide context:

Use vue-expert. I'm building a dashboard with charts, need to organize components efficiently.

DON’T ✗

Don’t use Vue Expert for:

  • Non-Vue frontend tasks (use frontend-patterns instead)
  • Backend API design
  • General JavaScript questions
  • CSS-only issues
  • Build tool configuration (unless Vue-specific)

Don’t forget to specify:

  • Vue version (2 or 3)
  • TypeScript or JavaScript
  • State management needs (Pinia, Vuex)
  • Testing framework preference

Common mistake:

// Too vague
Help me with Vue
// Better
Use vue-expert to create a reusable form component with validation in Vue 3

Complementary skills:

  • frontend-patterns: General frontend architecture and React patterns
  • coding-standards: Universal coding standards for TypeScript/JavaScript
  • security-review: Security best practices for web applications

Official resources:

Community resources:

Summary

In this post, I showed how to use the Vue Expert skill in Claude Code for frontend development. The key point is knowing when to invoke this specialized skill - whenever you’re working with Vue.js components, state management, routing, or other Vue-specific tasks. The skill provides idiomatic Vue 3 code using the Composition API, proper TypeScript integration, and best practices for component architecture.

Final Words + More Resources

My intention with this article was to help others share my knowledge and experience. If you want to contact me, you can contact by email: Email me

Here are also the most important links from this article along with some further resources that will help you in this scope:

Oh, and if you found these resources useful, don’t forget to support me by starring the repo on GitHub!

Comments