Master Vue.js core concepts - Components, Reactivity, Templates, Directives, Lifecycle
Teaches Vue.js core concepts including components, reactivity, templates, directives, and lifecycle hooks. Use when developers need to learn Vue fundamentals or validate their understanding through structured exercises and checkpoints.
/plugin marketplace add pluginagentmarketplace/custom-plugin-vue/plugin install vue-assistant@pluginagentmarketplace-vueThis skill inherits all available tools. When active, it can use any tool Claude has access to.
assets/config.yamlassets/schema.jsonreferences/GUIDE.mdreferences/PATTERNS.mdscripts/validate.pyProduction-grade skill for mastering Vue.js core concepts and building robust component-based applications.
Single Responsibility: Teach and validate understanding of Vue.js fundamentals including component architecture, reactivity system, template syntax, directives, and lifecycle hooks.
interface VueFundamentalsParams {
topic: 'components' | 'reactivity' | 'templates' | 'directives' | 'lifecycle' | 'all';
level: 'beginner' | 'intermediate' | 'advanced';
context?: {
current_knowledge?: string[];
learning_goal?: string;
time_available?: string;
};
}
Prerequisites: HTML, CSS, JavaScript basics
Duration: 2-3 hours
Outcome: Build reusable Vue components
| Topic | Concept | Exercise |
|---|---|---|
| SFC Structure | <template>, <script>, <style> | Create first component |
| Props | Passing data down | Build Card component |
| Events | $emit for child→parent | Button with click handler |
| Slots | Content distribution | Layout component |
| Registration | Local vs global | Component organization |
Prerequisites: Module 1
Duration: 3-4 hours
Outcome: Understand Vue's reactivity system
| Topic | Concept | Exercise |
|---|---|---|
| ref() | Primitive reactivity | Counter app |
| reactive() | Object reactivity | Form state |
| computed() | Derived values | Shopping cart total |
| watch() | Side effects | API calls on change |
| watchEffect() | Auto-track | Logging changes |
Prerequisites: Module 1
Duration: 2 hours
Outcome: Master template syntax
| Topic | Concept | Exercise |
|---|---|---|
| Interpolation | {{ }} binding | Display data |
| v-bind | Attribute binding | Dynamic classes |
| v-on | Event handling | Form submission |
| v-model | Two-way binding | Input forms |
| v-if/v-show | Conditional render | Toggle visibility |
| v-for | List rendering | Todo list |
Prerequisites: Module 3
Duration: 2 hours
Outcome: Use and create directives
| Topic | Concept | Exercise |
|---|---|---|
| v-if/else | Conditional | Auth display |
| v-for + key | Iteration | Data tables |
| v-model modifiers | .lazy, .trim | Form validation |
| v-on modifiers | .prevent, .stop | Event control |
| Custom directives | Reusable DOM logic | v-focus directive |
Prerequisites: Modules 1-4
Duration: 2 hours
Outcome: Manage component lifecycle
| Hook | Use Case | Example |
|---|---|---|
| onMounted | DOM ready | Fetch initial data |
| onUpdated | After reactivity | Scroll position |
| onUnmounted | Cleanup | Clear intervals |
| onErrorCaptured | Error boundary | Graceful degradation |
const skillConfig = {
maxAttempts: 3,
backoffMs: [1000, 2000, 4000],
onFailure: 'provide_hint'
}
tracking:
- event: module_started
data: [module_name, user_level]
- event: checkpoint_passed
data: [checkpoint_name, attempts]
- event: skill_completed
data: [total_time, score]
| Issue | Cause | Solution |
|---|---|---|
| Component not showing | Not registered | Check import/registration |
| Props not reactive | Wrong prop type | Use correct type |
| v-for no key | Missing :key | Add unique key |
| Infinite loop | watch causing watched change | Guard the update |
import { describe, it, expect } from 'vitest'
import { mount } from '@vue/test-utils'
import MyComponent from './MyComponent.vue'
describe('MyComponent', () => {
it('renders props correctly', () => {
const wrapper = mount(MyComponent, {
props: { title: 'Test' }
})
expect(wrapper.text()).toContain('Test')
})
it('emits event on action', async () => {
const wrapper = mount(MyComponent)
await wrapper.find('button').trigger('click')
expect(wrapper.emitted('action')).toBeTruthy()
})
})
Skill("vue-fundamentals")
vue-composition-api - Next level after fundamentalsvue-typescript - Adding type safetyvue-testing - Testing fundamentalsThis skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.