Créer un projet vue est très facile : vue create nom_projet
on obtient un menu comme suivant :
? Please pick a preset: (Use arrow keys)
Default ([Vue 2] babel, eslint)
Default (Vue 3) ([Vue 3] babel, eslint)
❯ Manually select features
Selon les versions de vue-cli, il propose par défaut de créer un projet vuejs v2, ou bien v3. Comme indiqué ci-dessus, on peut également paramétrer le projet en spécifiant des options ou des plugins.
Dans l'exemple ci-dessous, les plugins vue-router et vuex ont été activés et seront intégrés directement au canevas de code générer par vue-cli.
? Please pick a preset: Manually select features
? Check the features needed for your project:
◉ Choose Vue version
◉ Babel
◯ TypeScript
◯ Progressive Web App (PWA) Support
◉ Router
❯◉ Vuex
◯ CSS Pre-processors
◉ Linter / Formatter
◯ Unit Testing
◯ E2E Testing
package.json
: fichier décrivant les différent modules nodejs utilisés, leur dépendances et certaines options de configuration.node_modules
: où est stocké le code des modules.public
: contient le patron de fichier html utilisé pour l'application SPAsrc
: les sources de l'application.<aside> 💡
Sauf exception, on a besoin d'intervenir uniquement sur les fichiers de src
.
</aside>
src
contient :
App.vue
: décrit la page principale de l'application. Le fichier est structuré comme tous les fichiers .vue
, avec une partie <template>
décrivant le html, une partie <script> contenant du javascript et notamment tout ce qui est associé à vuejs (data, methods, ...), et enfin une partie <style>
avec le CSS pour formater l'affichage.main.js
: crée l'instance de vue. On modifie ce fichier quand on veut ajouter à la vue des modules/plugins après la création (par ex, vue-router, vuetity, ...).components
: le répertoire contenant les composants de l'application, généralement sous forme de fichier .vue
. Par défaut, vue-cli crée un composant HelloWorld.vue
qui permet seulement de personnaliser le titre principal du composant..vue
.vue
sert à définir un composant.<template>
: contient le code HTML décrivant le visuel du composant.<script>
: contient du javascript décrivant les données manipulées par le composant (via les champs props et data), ainsi que les fonctions de contrôle.<style>
: contient du CSS, pour formater l'affichage donné dans le template.<template>
est obligatoire. Si un composant n'a pas de données propres, ou des fonctions de contrôle, alors pas besoin de partie script.