vuejs-ai/guides-développement-vue

Une collection de bonnes pratiques et conseils pour le développement d'applications avec Vue.js. Cette compétence DOIT être appliquée lors du développement, du refactoring ou de la revue de projets Vue.js ou Nuxt.

Qu'est-ce que guides-développement-vue ?

Cette compétence regroupe un ensemble de bonnes pratiques et de recommandations essentielles pour le développement d'applications avec Vue.js et Nuxt. Elle est conçue pour être activée systématiquement lors de toute tâche de développement, de refactoring ou de revue de code impliquant ces frameworks, garantissant ainsi l'adhésion aux standards de qualité et de performance. Elle couvre des aspects clés tels que la structure de projet, l'utilisation des composants, la gestion d'état, le routage, et les optimisations de performance, en s'appuyant sur la documentation officielle de Vue.js et les retours d'expérience de la communauté. Les développeurs et agents IA peuvent s'y référer pour produire un code maintenable, performant et conforme aux meilleures pratiques actuelles, que ce soit avec l'Options API ou la Composition API, et pour assurer une intégration harmonieuse avec Nuxt.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/vuejs-ai/skills/tree/main/skills/vue-development-guides

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait guides-développement-vue ?

Une collection de bonnes pratiques et conseils pour le développement d'applications avec Vue.js. Cette compétence DOIT être appliquée lors du développement, du refactoring ou de la revue de projets Vue.js ou Nuxt.

Principes généraux

  • Privilégier la Composition API : Utilisez la Composition API (avec <script setup>) pour les nouveaux composants, sauf si le projet utilise exclusivement l'Options API. La Composition API offre une meilleure réutilisabilité et une logique plus modulaire.
  • Composants atomiques : Décomposez l'interface en petits composants réutilisables (un par dossier dans components/). Évitez les composants monolithiques.
  • Nommage cohérent : Utilisez PascalCase pour les noms de composants et camelCase pour les props. Les événements doivent suivre la convention kebab-case (ex. @update:value).
  • Gestion d'état centralisée : Pour les états partagés, utilisez Pinia (recommandé) plutôt que Vuex. Gardez l'état local lorsqu'il n'est pas partagé.
  • Routage : Utilisez Vue Router avec des routes nommées et lazy-loading pour chaque module (via () => import(...)).
  • Performance : Évitez les watchers inutiles, utilisez computed pour les dérivations, et appliquez v-memo ou keep-alive quand nécessaire.

Structure de projet recommandée

project/
  components/
    common/      # Composants réutilisables globaux
    ui/          # Composants d'interface utilisateur (boutons, modales)
    forms/       # Composants de formulaire
  composables/   # Logique réutilisable (hooks)
  pages/         # Pages (dans Nuxt, ou via Vue Router)
  store/         # Stores Pinia
  utils/         # Fonctions utilitaires
  views/         # Composants de vue (si non Nuxt)

Exemples

Composition API avec <script setup>

<script setup>
import { ref, computed } from 'vue'

const props = defineProps({
  count: {
    type: Number,
    required: true
  }
})

const emit = defineEmits(['increment'])

const double = computed(() => props.count * 2)

function handleClick() {
  emit('increment')
}
</script>

<template>
  <div>
    <p>Compteur : {{ props.count }}</p>
    <p>Double : {{ double }}</p>
    <button @click="handleClick">Incrémenter</button>
  </div>
</template>

Utilisation de Pinia

// store/counter.js
import { defineStore } from 'pinia';

export const useCounterStore = defineStore('counter', {
  state: () => ({
    count: 0
  }),
  actions: {
    increment() {
      this.count++;
    }
  },
  getters: {
    double(state) {
      return state.count * 2;
    }
  }
});

Ressources

Individual skills in this repo

This repo contains 5 individual skills — each has its own dedicated page.

Skills associés