Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Vue Patterns

ASecurity

Use when vue.js 3 Composition API patterns, component architecture, reactivity best practices, Pinia state management, Vue Router navigation, and Nuxt SSR patterns. Activates for Vue, Nuxt, Vite, or Pinia projects. Triggers on \"vue-patterns\", \"vue patterns\", \"patterns\".

2 stars
0 votes
0 copies
0 views
Added 9/19/2026
developmenttypescriptgoreactvuetestingapidatabasefrontendsecurityperformance

Works with

api

Security Analysis

A100/100

Scanned 9/19/2026

Install to Claude Code

$npx -y skills add majinmagros/magros.ai-skills --skill vue-patterns --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Vue Patterns?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Vue Patterns
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majinmagros-vue-patterns/badge)](https://www.skillsdirectory.com/skills/majinmagros-vue-patterns)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: vue-patterns
description: "Use when vue.js 3 Composition API patterns, component architecture, reactivity best practices, Pinia state management, Vue Router navigation, and Nuxt SSR patterns. Activates for Vue, Nuxt, Vite, or Pinia projects. Triggers on \"vue-patterns\", \"vue patterns\", \"patterns\"."
origin: ECC
---

# Vue.js Patterns and Best Practices

Comprehensive guide for Vue.js 3 development using Composition API (`<script setup>`), covering component design, reactivity, state management, routing, testing, and SSR patterns. Nuxt-specific guidance is included where it differs from vanilla Vue. Code in `references/`.

## When to Activate

Activate this skill when:
- The project uses Vue.js (any version), Nuxt, Vite + Vue, or Pinia.
- The user asks about Vue component architecture, composables, reactivity, or state management.
- Reviewing Vue Single-File Components (`.vue` files).
- Setting up Vue Router, Pinia stores, or Vite/Vitest configuration.
- Discussing Vue-specific performance, security, or SSR patterns.

## Sections (resumo — código em `references/`)

- **1-3 Core** (`core.md`): feature-first layout + naming table; SFC order (imports→props→composables→state→computed→methods→watchers→lifecycle); presentational vs container; typed props (`withDefaults`, `defineModel`); typed emits (kebab template/camel script); composables (`use` prefix, `MaybeRef`, cleanup, no module side effects, replace mixins)
- **4-5 State + Router** (`state-routing.md`): ref/reactive → props/emits → provide/inject → Pinia → server composable; Pinia setup store (actions + loading/error); lazy route components + `props: true`; `beforeEach` auth guard with redirect; reactive params via `computed` + `watch`
- **6-7 Templates + Perf** (`templates-perf.md`): v-if/v-show/v-for (+ stable keys, computed lists, no v-if+v-for); v-model (incl. multi); perf table (`v-memo`, `v-once`, `shallowRef`, `v-show`, `KeepAlive`, lazy routes, `Suspense`)
- **8-10 Testing + Nuxt + 3.5** (`testing-nuxt.md`): Vitest + Test Utils + pinia/testing + Playwright; component test pattern; Nuxt auto-imports, `useAsyncData`/`useFetch` (keys), server routes (zod params), runtime config (server vs public); Vue 3.5 reactive destructure (watch via getter), `useTemplateRef`, `onWatcherCleanup`, `useId`, `defer` Teleport, lazy hydration

## Anti-Patterns

| Anti-Pattern | Why It's Wrong | The Fix |
|-------------|---------------|---------|
| Destructuring `defineProps()` (Vue < 3.5) | Captures snapshot, loses reactivity | Access via `props.xxx` or use `toRefs()` |
| `watch()` on destructured prop (Vue 3.5+) | Compile-time error — destructured props can't be watched directly | Use getter wrapper: `watch(() => count, ...)` |
| `v-if` + `v-for` on same element | Ambiguous execution order | Use computed filtered array |
| `v-for` key = index | Broken state on reorder | Use stable database IDs |
| Mutating props | Violates one-way data flow | Emit events or use `v-model` |
| `v-html` with user content | XSS vulnerability | Sanitize with DOMPurify |
| Mixins in Vue 3 | Opaque, collision-prone | Replace with composables |
| Module-scope side effects in composable | Shared across instances | Scope in `onMounted` + `onUnmounted` |
| `reactive()` for replaceable state | Replacement breaks reactivity | Use `ref()` instead |
| Watcher without cleanup | Memory leaks, race conditions | Use `onCleanup` or `onWatcherCleanup()` (Vue 3.5+) |
| Options API in new Vue 3 code | Ecosystem move to Composition API | Use `<script setup>` |
| Plain ref for template references | No dynamic ref support, name-matching fragile | Use `useTemplateRef()` (Vue 3.5+) |

```vue
<!-- SFC order + typed props + Pinia + Router in one glance -->
<script setup lang="ts">
import { useCartStore } from "@/stores/useCartStore";
const props = withDefaults(defineProps<{ label: string; variant?: "primary" | "secondary" }>(), { variant: "primary" });
const cart = useCartStore();
</script>
```

## Related Skills

- `accessibility` — ARIA, semantic HTML, focus management
- `frontend-patterns` — Cross-framework frontend architecture
- `typescript` — TypeScript best practices applied to Vue projects
- `coding-standards` — General code quality standards

Attribution

majinmagrosmajinmagros
View sourceMore from majinmagros →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Browser Extension Developer

Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content scripts, background scripts, or i18n updates.

281612 votes

Seo Optimizer

SEO optimization with keyword analysis, readability assessment, technical validation, content quality. Use for search rankings, blog posts, content audits, or encountering keyword density, readability scores, meta tags, schema markup errors.

2132 votes

Google Official Seo Guide

Official Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation

1862 votes

Tanstack Start

Build a full-stack TanStack Start app on Cloudflare Workers from scratch — SSR, file-based routing, server functions, D1+Drizzle, better-auth, Tailwind v4+shadcn/ui. Use whenever the user mentions TanStack Start, asks to scaffold a full-stack Cloudflare app with SSR, wants an SSR dashboard, or asks for a React 19 + Cloudflare Workers app with file-based routing and server functions — even if they don't name TanStack Start specifically. No template repo — Claude generates every file fresh per ...

9881 votes

Pentest

PTES-aligned adversarial security audit for backend, frontend, and mobile applications. Produces a CVSS-scored Hacker Report with verified PoCs and phased remediation.

5491 votes
View all in development →