Smithery Logo
MCPsSkillsDocsPricing
Login
Smithery Logo

Accelerating the Agent Economy

Resources

DocumentationPrivacy PolicySystem Status

Company

PricingAboutBlog

Connect

© 2026 Smithery. All rights reserved.

    manutej

    vuejs-development

    manutej/vuejs-development
    Coding
    38
    1 installs

    About

    SKILL.md

    Install

    Install via Skills CLI

    or add to your agent
    • Claude Code
      Claude Code
    • Codex
      Codex
    • OpenClaw
      OpenClaw
    • Cursor
      Cursor
    • Amp
      Amp
    • GitHub Copilot
      GitHub Copilot
    • Gemini CLI
      Gemini CLI
    • Kilo Code
      Kilo Code
    • Junie
      Junie
    • Replit
      Replit
    • Windsurf
      Windsurf
    • Cline
      Cline
    • Continue
      Continue
    • OpenCode
      OpenCode
    • OpenHands
      OpenHands
    • Roo Code
      Roo Code
    • Augment
      Augment
    • Goose
      Goose
    • Trae
      Trae
    • Zencoder
      Zencoder
    • Antigravity
      Antigravity
    ├─
    ├─
    └─

    About

    Comprehensive Vue.js development skill covering Composition API, reactivity system, components, directives, and modern Vue 3 patterns based on official Vue.js documentation

    SKILL.md

    Vue.js Development Skill

    This skill provides comprehensive guidance for building modern Vue.js applications using the Composition API, reactivity system, single-file components, directives, and lifecycle hooks based on official Vue.js documentation.

    When to Use This Skill

    Use this skill when:

    • Building single-page applications (SPAs) with Vue.js
    • Creating progressive web applications (PWAs) with Vue
    • Developing interactive user interfaces with reactive data
    • Building component-based architectures
    • Implementing forms, data fetching, and state management
    • Creating reusable UI components and libraries
    • Migrating from Options API to Composition API
    • Optimizing Vue application performance
    • Building accessible and maintainable web applications
    • Integrating with TypeScript for type-safe development

    Core Concepts

    Reactivity System

    Vue's reactivity system is the core mechanism that tracks dependencies and automatically updates the DOM when data changes.

    Reactive State with ref():

    import { ref } from 'vue'
    
    // ref creates a reactive reference to a value
    const count = ref(0)
    
    // Access value with .value
    console.log(count.value) // 0
    
    // Modify value
    count.value++
    console.log(count.value) // 1
    
    // In templates, .value is automatically unwrapped
    // <template>{{ count }}</template>
    

    Reactive Objects with reactive():

    import { reactive } from 'vue'
    
    // reactive creates a reactive proxy of an object
    const state = reactive({
      name: 'Vue',
      version: 3,
      features: ['Composition API', 'Teleport', 'Suspense']
    })
    
    // Access and modify properties directly
    console.log(state.name) // 'Vue'
    state.name = 'Vue.js'
    
    // Nested objects are also reactive
    state.features.push('Fragments')
    

    When to Use ref() vs reactive():

    // Use ref() for:
    // - Primitive values (string, number, boolean)
    // - Single values that need reactivity
    const count = ref(0)
    const message = ref('Hello')
    const isActive = ref(true)
    
    // Use reactive() for:
    // - Objects with multiple properties
    // - Complex data structures
    const user = reactive({
      id: 1,
      name: 'John',
      email: 'john@example.com',
      preferences: {
        theme: 'dark',
        notifications: true
      }
    })
    

    Computed Properties:

    import { ref, computed } from 'vue'
    
    const count = ref(0)
    
    // Computed property automatically tracks dependencies
    const doubled = computed(() => count.value * 2)
    
    console.log(doubled.value) // 0
    count.value = 5
    console.log(doubled.value) // 10
    
    // Writable computed
    const firstName = ref('John')
    const lastName = ref('Doe')
    
    const fullName = computed({
      get() {
        return `${firstName.value} ${lastName.value}`
      },
      set(newValue) {
        [firstName.value, lastName.value] = newValue.split(' ')
      }
    })
    
    fullName.value = 'Jane Smith'
    console.log(firstName.value) // 'Jane'
    console.log(lastName.value) // 'Smith'
    

    Watchers:

    import { ref, watch, watchEffect } from 'vue'
    
    const count = ref(0)
    const message = ref('Hello')
    
    // Watch a single ref
    watch(count, (newValue, oldValue) => {
      console.log(`Count changed from ${oldValue} to ${newValue}`)
    })
    
    // Watch multiple sources
    watch([count, message], ([newCount, newMessage], [oldCount, oldMessage]) => {
      console.log(`Count: ${newCount}, Message: ${newMessage}`)
    })
    
    // Watch reactive object property
    const state = reactive({ count: 0 })
    watch(
      () => state.count,
      (newValue, oldValue) => {
        console.log(`State count changed from ${oldValue} to ${newValue}`)
      }
    )
    
    // watchEffect automatically tracks dependencies
    watchEffect(() => {
      console.log(`Count is ${count.value}`)
      // Automatically re-runs when count changes
    })
    
    // Immediate execution
    watch(count, (newValue) => {
      console.log(`Count is now ${newValue}`)
    }, { immediate: true })
    
    // Deep watching
    const user = reactive({ profile: { name: 'John' } })
    watch(user, (newValue) => {
      console.log('User changed:', newValue)
    }, { deep: true })
    

    Composition API

    The Composition API provides a set of function-based APIs for organizing component logic.

    Basic Component with

    Recommended Servers
    Vercel Grep
    Vercel Grep
    Repository
    manutej/luxor-claude-marketplace
    Files