PluginBench
Rule

vue

via PatrickJS/awesome-cursorrules

Vue.js best practices for Composition API, Pinia state management, and TypeScript integration

What is vue?

This rule guides Vue.js development using modern patterns: Composition API over Options API, Pinia for state management, and proper TypeScript integration. Use it when building scalable Vue applications that need consistent structure, performance optimization, and maintainability.

  • Structure components with Composition API, small focused components, and TypeScript validation
  • Manage state with Pinia stores, modular organization, and proper async handling
  • Optimize performance through lazy loading, computed properties, proper v-show/v-if usage, and key management
  • Implement Vue Router with navigation guards, route meta fields, and lazy-loaded routes
  • Handle forms with v-model, validation, error handling, and proper loading states
  • Write unit and component tests using Vue Test Utils with proper mocking and async testing

Applies to

File patterns this rule matches.

**/*.vue
**/*.ts
components/**/*
Rule definition (reference)

Source of truth, from the repository.

Vue.js Best Practices

Component Structure

  • Use Composition API over Options API
  • Keep components small and focused
  • Use proper TypeScript integration
  • Implement proper props validation
  • Use proper emit declarations
  • Keep template logic minimal

Composition API

  • Use proper ref and reactive
  • Implement proper lifecycle hooks
  • Use composables for reusable logic
  • Keep setup function clean
  • Use proper computed properties
  • Implement proper watchers

State Management

  • Use Pinia for state management
  • Keep stores modular
  • Use proper state composition
  • Implement proper actions
  • Use proper getters
  • Handle async state properly

Performance

  • Use proper component lazy loading
  • Implement proper caching
  • Use proper computed properties
  • Avoid unnecessary watchers
  • Use proper v-show vs v-if
  • Implement proper key management

Routing

  • Use Vue Router properly
  • Implement proper navigation guards
  • Use proper route meta fields
  • Handle route params properly
  • Implement proper lazy loading
  • Use proper navigation methods

Forms

  • Use v-model properly
  • Implement proper validation
  • Handle form submission properly
  • Show proper loading states
  • Use proper error handling
  • Implement proper form reset

TypeScript Integration

  • Use proper component type definitions
  • Implement proper prop types
  • Use proper emit declarations
  • Handle proper type inference
  • Use proper composable types
  • Implement proper store types

Testing

  • Write proper unit tests
  • Implement proper component tests
  • Use Vue Test Utils properly
  • Test composables properly
  • Implement proper mocking
  • Test async operations

Best Practices

  • Follow Vue style guide
  • Use proper naming conventions
  • Keep components organized
  • Implement proper error handling
  • Use proper event handling
  • Document complex logic

Build and Tooling

  • Use Vite for development
  • Configure proper build setup
  • Use proper environment variables
  • Implement proper code splitting
  • Use proper asset handling
  • Configure proper optimization

Related rules

Senior full-stack TypeScript, React, Node.js guidance with clean architecture, testing, and WHY-oriented reasoning.

**/*
41k
via PatrickJS/awesome-cursorrules

Quantitative factor research skills for designing, evaluating, and mining alpha factors in equities markets.

**/*
41k
via PatrickJS/awesome-cursorrules

Android development with Jetpack Compose, clean architecture, and Material Design 3.

**/*
41k
via PatrickJS/awesome-cursorrules

Angular development with Novo Elements UI library using standalone components.

**/*
41k
via PatrickJS/awesome-cursorrules

Expert Angular 18 + TypeScript development with Jest, emphasizing clean code and performance.

**/*
41k
via PatrickJS/awesome-cursorrules

Manage Kubernetes clusters, add-ons, stacks, and credentials via the Ankra CLI platform.

**/*.sh +5
41k
via PatrickJS/awesome-cursorrules