Projet de blog Vue3

Ce chapitre vous guide de zéro dans la création d’un projet de blog Vue3 avec Vite, et vous aide à comprendre le rôle de chaque fichier du projet.


Préparation de l’environnement

Avant de commencer, assurez-vous que Node.js est installé sur votre ordinateur.

Node.js est un environnement d’exécution JavaScript qui nous permet d’exécuter du code JS en dehors du navigateur.

La chaîne d’outils de développement de Vue3 (Vite, npm) dépend de Node.js.

Vérifier si Node.js est installé

Ouvrez un terminal (utilisez CMD ou PowerShell sous Windows, Terminal sur Mac) et saisissez la commande suivante :

$ node -v
v20.10.0

S’il affiche un numéro de version (v16 ou supérieure recommandée), il est installé.

Si ce n'est pas le cas, allez surnodejs.orgTéléchargez la version LTS et installez-la.

L’installation de Node.js inclut automatiquement npm (gestionnaire de paquets Node).

Commande de vérification :

npm -v

Créer un projet Vue3

Vue recommande officiellement d’utilisercreate-vuel’outil de scaffolding pour initialiser le projet.

Dans le terminal, rendez-vous dans le répertoire où vous souhaitez placer le projet et exécutez :

npm create vue@latest blog-app

Après l'exécution, une série d'options apparaîtra. Sélectionnez-les comme suit :

OptionTri par sélectionDescription
Ajouter TypeScript ?NonLes débutants utilisent d'abord du JS pur
Ajouter la prise en charge de JSX ?NonLa syntaxe de template est plus intuitive
Ajouter Vue Router ?OuiLe routage sera utilisé plus tard
Ajouter Pinia ?OuiLa gestion d'état sera utilisée plus tard
Ajouter Vitest ?NonPas besoin de tests pour l'instant
Ajouter ESLint ?NonLes débutants n'en ont pas besoin pour l'instant

Après avoir fait les sélections, exécutez les commandes suivantes dans l'ordre indiqué :

$ cd blog-app
$ npm install
$ npm run dev

À ce stade, le navigateur ouvrira automatiquement http://localhost:5173. Si vous voyez la page d'accueil par défaut de Vue, le projet a démarré avec succès.

npm installIl téléchargera tous les paquets de dépendances dans le répertoire node_modules selon package.json. Cette étape nécessite une connexion Internet et peut prendre quelques minutes lors de la première exécution.


Explication détaillée de la structure des répertoires du projet

Ouvrez le dossier blog-app et vous verrez la structure suivante :

blog-app/
├── index.html              # 入口 HTML 文件
├── package.json            # 项目配置与依赖列表
├── vite.config.js          # Vite 构建工具配置
├── public/                 # 不经过编译的静态资源
├── src/
│   ├── main.js             # JS 入口,创建并挂载 Vue 应用
│   ├── App.vue             # 根组件,所有页面的外壳
│   ├── assets/             # 需要编译的静态资源(CSS、图片)
│   ├── components/         # 可复用的 Vue 组件
│   ├── views/              # 页面级组件(路由对应的页面)
│   ├── router/             # 路由配置
│   └── stores/             # Pinia 状态管理

Rôle des fichiers principaux

index.html— Le fichier d'entrée consulté par le navigateur.

Vite injecte automatiquement src/main.js dans ce fichier ; vous n'avez pas besoin d'importer manuellement de JS.

src/main.js— Le fichier de démarrage de l'application Vue.

Il est chargé de créer l'instance d'application Vue, d'enregistrer les plugins (routeur, gestion d'état) et de monter l'application sur la page HTML.

src/App.vue— Le composant racine.

Il est le conteneur le plus externe de toutes les pages, contenant généralement une barre de navigation, un pied de page et une sortie de routeur.


Composants monofichiers (SFC)

Dans Vue, chaque.vuefichier est appelé un « Single File Component » (SFC).

Il encapsule ensemble le template, la logique et les styles d’un même composant ; un fichier est une unité fonctionnelle indépendante.

Structure en trois parties d’un SFC

Exemple

<script setup>
// Partie 3 : Logique — écrivez le JS ici
const message = 'Hello Vue3!'
</script>

<template>
  <!-- Partie 1 : Template — écrivez le HTML ici -->
  <h1>{{ message }}</h1>
</template>

<style scoped>
/* Partie 2 : Styles — écrivez le CSS ici */
h1 {
  color: #427DB8;
}
</style>

L’ordre de ces trois balises peut être arbitraire, mais la convention de l’industrie est :script → template → style。

BlocObjectifCompréhension en une phrase
<script setup>Écrivez la logique JS, définissez les données et les méthodesContrôle ce que fait le composant
<template>Écrire la structure HTML, lier les donnéesContrôle l'apparence du composant
<style scoped>Écrire les styles CSSContrôle si le composant est beau

scopedL'attribut `scoped` fait que les styles du composant actuel s'appliquent uniquement à lui-même et ne polluent pas les autres composants. C'est l'une des fonctionnalités principales des composants monofichiers de Vue.


Syntaxe de template vs JSX

Vue utilise par défautla syntaxe de templatepour construire des interfaces.

La syntaxe de template s'écrit en<template>HTML avec des directives spécifiques à Vue.

FonctionnalitéSyntaxe de templateJSX
Forme syntaxiqueHTML + directives VueÉcrire du code de type HTML en JavaScript
Coût d'apprentissageFaible, proche du HTML natifNécessite de comprendre le mécanisme de compilation JSX
FlexibilitéMoyen, déclaratifÉlevé, peut être manipulé librement avec JS
Niveau de recommandation de VueRecommandé par défautPrise en charge facultative
Scénarios applicablesLa plupart du développement de pagesNécessite une logique complexe pour générer dynamiquement l'interface utilisateur

Ce tutoriel utilise la syntaxe de template tout au long, car c'est la manière la plus naturelle et la plus adaptée aux débutants d'écrire du Vue.


Mise en pratique : Effacez le modèle et écrivez le squelette du blog

Maintenant, effacez le contenu App.vue généré par défaut et remplacez-le par le squelette de base de notre blog.

Exemple

<script setup>
// La logique sera ajoutée ici plus tard
</script>

<template>
  <div id="app">
    <!-- Barre de navigation supérieure -->
    <header class="navbar">
      <h1>Mon blog</h1>
      <nav>
        <a href="/">Accueil</a>
        <a href="#">À propos</a>
      </nav>
    </header>

    <!-- Zone de contenu principale -->
    <main class="container">
      <p>Le contenu du blog sera affiché ici</p>
    </main>

    <!-- Pied de page -->
    <footer class="footer">
      <p>© 2024 Mon blog. Propulsé par Vue3.</p>
    </footer>
  </div>
</template>

<style>
/* Réinitialisation globale */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  background: #f5f5f5;
  color: #333;
}

/* Barre de navigation */
.navbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 40px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.navbar h1 {
  font-size: 24px;
  color: #427DB8;
}

.navbar a {
  margin-left: 20px;
  text-decoration: none;
  color: #333;
}

/* Zone de contenu principale */
.container {
  max-width: 960px;
  margin: 40px auto;
  padding: 0 20px;
}

/* Pied de page */
.footer {
  text-align: center;
  padding: 20px;
  color: #999;
  border-top: 1px solid #eee;
}
</style>

Après l'enregistrement, le navigateur s'actualisera automatiquement, et vous verrez une structure de blog épurée : barre de navigation en haut + zone de contenu au milieu + pied de page en bas.

C'est le point de départ de tous les chapitres suivants.


Résumé du chapitre

Dans ce chapitre, vous avez accompli trois choses : créé un projet Vue3 avec Vite, compris la structure des répertoires et la structure en trois parties des SFC, et écrit le squelette HTML de base du blog.

À retenir : savoir qu'un.vuefichier se compose de trois parties : template / script / style, et comment faire tourner un projet Vue.

Autres extensions