Agent Skills: Vue Best Practices

Vue 3 and Nuxt performance optimization guidelines. This skill should be used when writing, reviewing, or refactoring Vue 3/Nuxt code to ensure optimal performance patterns. Triggers on tasks involving Vue components, Nuxt pages, data fetching, bundle optimization, or performance improvements.

UncategorizedID: fronttoend/agent-skills/vue-best-practices

Install this agent skill to your local

pnpm dlx add-skill https://github.com/FrontToEnd/agent-skills/tree/HEAD/skills/vue-best-practices

Skill Files

Browse the full folder contents for vue-best-practices.

Download Skill

Loading file tree…

skills/vue-best-practices/SKILL.md

Skill Metadata

Name
vue-best-practices
Description
Vue 3 and Nuxt performance optimization guidelines. This skill should be used when writing, reviewing, or refactoring Vue 3/Nuxt code to ensure optimal performance patterns. Triggers on tasks involving Vue components, Nuxt pages, data fetching, bundle optimization, or performance improvements.

Vue Best Practices

Overview

Comprehensive performance optimization guide for Vue 3 and Nuxt applications, containing 40+ rules across 8 categories. Rules are prioritized by impact to guide automated refactoring and code generation.

When to Apply

Reference these guidelines when:

  • Writing new Vue 3 components or Nuxt pages
  • Implementing data fetching (client or server-side)
  • Reviewing code for performance issues
  • Refactoring existing Vue/Nuxt code
  • Optimizing bundle size or load times

Priority-Ordered Guidelines

Rules are prioritized by impact:

| Priority | Category | Impact | | -------- | ------------------------ | ----------- | | 1 | Eliminating Waterfalls | CRITICAL | | 2 | Bundle Size Optimization | CRITICAL | | 3 | Server-Side Performance | HIGH | | 4 | Reactivity Optimization | MEDIUM-HIGH | | 5 | Re-render Optimization | MEDIUM | | 6 | Rendering Performance | MEDIUM | | 7 | JavaScript Performance | LOW-MEDIUM | | 8 | Advanced Patterns | LOW |

Quick Reference

Critical Patterns (Apply First)

Eliminate Waterfalls:

  • Defer await until needed (move into branches)
  • Use Promise.all() for independent async operations
  • Start promises early, await late
  • Use Nuxt useAsyncData with lazy option for parallel fetching
  • Use <Suspense> boundaries to stream content

Reduce Bundle Size:

  • Avoid barrel file imports (import directly from source)
  • Use defineAsyncComponent for heavy components
  • Defer non-critical third-party libraries
  • Use Vite's dynamic import for code splitting
  • Consider petite-vue for progressive enhancement

High-Impact Server Patterns

  • Avoid cross-request state pollution in SSR
  • Create new app instance per request
  • Use Pinia with SSR-safe patterns
  • Parallelize data fetching with component composition
  • Minimize serialization at SSR boundaries

Medium-Impact Reactivity Patterns

  • Use ref() as primary API over reactive()
  • Use shallowRef() for large immutable data
  • Apply markRaw() for non-reactive data
  • Use toRef()/toRefs() for safe destructuring
  • Leverage computed stability (Vue 3.4+)

Re-render Patterns

  • Use v-once for static content
  • Use v-memo for conditional update skipping
  • Keep props stable to prevent child updates
  • Avoid unnecessary component abstractions
  • Use derived state in watchers

Rendering Patterns

  • Virtualize large lists with vue-virtual-scroller
  • Use content-visibility: auto for long lists
  • Apply <KeepAlive> for component caching
  • Use <Teleport> for portal rendering
  • Prefer v-if over v-show for heavy components

JavaScript Patterns

  • Batch DOM CSS changes via classes
  • Build index maps for repeated lookups
  • Cache repeated function calls
  • Use toSorted() instead of sort() for immutability
  • Early return from functions

References

Full documentation with code examples is available in:

  • references/vue-performance-guidelines.md - Complete guide with all patterns
  • references/rules/ - Individual rule files organized by category

To look up a specific pattern, grep the rules directory:

grep -l "suspense" references/rules/
grep -l "async-component" references/rules/
grep -l "shallowRef" references/rules/

Rule Categories in references/rules/

  • async-* - Waterfall elimination patterns
  • bundle-* - Bundle size optimization
  • server-* - Server-side performance
  • reactivity-* - Vue reactivity patterns
  • rerender-* - Re-render optimization
  • rendering-* - DOM rendering performance
  • js-* - JavaScript micro-optimizations
  • advanced-* - Advanced patterns