Vue3-Blogprojekt

Dieses Kapitel führt dich von Grund auf durch die Erstellung eines Vue3-Blogprojekts mit Vite und hilft dir zu verstehen, welche Rolle jede Datei im Projekt spielt.


Umgebungsvorbereitung

Bevor du beginnst, stelle sicher, dass Node.js auf deinem Computer installiert ist.

Node.js ist eine JavaScript-Laufzeitumgebung, mit der wir JS-Code außerhalb des Browsers ausführen können.

Die Entwicklungstoolchain von Vue3 (Vite, npm) basiert auf Node.js.

Prüfe, ob Node.js installiert ist

Öffne ein Terminal (unter Windows CMD oder PowerShell, auf dem Mac Terminal) und gib den folgenden Befehl ein:

$ node -v
v20.10.0

Wenn eine Versionsnummer angezeigt wird (empfohlen v16 oder höher), ist es installiert.

Wenn nicht, gehen Sie zunodejs.org, laden Sie die LTS-Version herunter und installieren Sie sie.

Bei der Installation von Node.js ist npm (Node-Paketmanager) automatisch enthalten.

Überprüfungsbefehl:

npm -v

Ein Vue3-Projekt erstellen

Vue empfiehlt offiziell die Verwendung voncreate-vue, dem Scaffolding-Tool, um das Projekt zu initialisieren.

Gehe im Terminal in das Verzeichnis, in dem du das Projekt ablegen möchtest, und führe Folgendes aus:

npm create vue@latest blog-app

Nach der Ausführung erscheint eine Reihe von Optionen. Wählen Sie sie wie folgt aus:

OptionSelectionBeschreibung
TypeScript hinzufügen?NoAnfänger verwenden zunächst reines JS
JSX-Unterstützung hinzufügen?NoTemplate-Syntax ist intuitiver
Vue Router hinzufügen?JaRouting wird später verwendet
Pinia hinzufügen?JaState-Management, wird später verwendet
Vitest hinzufügen?NoVorerst sind keine Tests erforderlich
ESLint hinzufügen?NoFür Anfänger wird es vorerst nicht benötigt

Nachdem Sie die Auswahlen getroffen haben, führen Sie die folgenden Befehle in der angegebenen Reihenfolge aus:

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

Zu diesem Zeitpunkt öffnet der Browser automatisch http://localhost:5173. Wenn Sie die Standard-Willkommensseite von Vue sehen, wurde das Projekt erfolgreich gestartet.

npm installEs lädt alle Abhängigkeitspakete gemäß package.json in das Verzeichnis node_modules herunter. Dieser Schritt erfordert eine Internetverbindung und kann beim ersten Ausführen einige Minuten dauern.


Detaillierte Erklärung der Projektverzeichnisstruktur

Öffnen Sie den Ordner blog-app und Sie sehen die folgende Struktur:

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 状态管理

Zweck der Kerndateien

index.html— Die vom Browser aufgerufene Einstiegsdatei.

Vite fügt src/main.js automatisch in diese Datei ein; Sie müssen kein JS manuell importieren.

src/main.js— Die Startdatei der Vue-Anwendung.

Sie ist dafür verantwortlich, die Vue-Anwendungsinstanz zu erstellen, Plugins (Router, State-Management) zu registrieren und die Anwendung an die HTML-Seite zu mounten.

src/App.vue— Die Root-Komponente.

Sie ist der äußerste Container aller Seiten und enthält üblicherweise eine Navigationsleiste, einen Footer und einen Router-Outlet.


Single-File-Komponenten (SFC)

In Vue, jede.vueDatei wird als "Single File Component" (SFC) bezeichnet.

Sie kapselt das Template, die Logik und die Styles derselben Komponente zusammen; eine Datei ist eine unabhängige funktionale Einheit.

Dreiteilige Struktur einer SFC

Beispiel

<script setup>
// Teil 3: Logik — hier JS schreiben
const message = 'Hello Vue3!'
</script>

<template>
  <!-- Teil 1: Template — hier HTML schreiben -->
  <h1>{{ message }}</h1>
</template>

<style scoped>
/* Teil 2: Styles — hier CSS schreiben */
h1 {
  color: #427DB8;
}
</style>

Die Reihenfolge dieser drei Tags kann beliebig sein, aber die Branchenkonvention ist:script → template → style。

BlockZweckVerständnis in einem Satz
<script setup>JS-Logik schreiben, Daten und Methoden definierenSteuert, was die Komponente tut
<template>HTML-Struktur schreiben, Daten bindenSteuert, wie die Komponente aussieht
<style scoped>CSS-Stile schreibenSteuert, ob die Komponente gut aussieht

scopedDas Attribut `scoped` bewirkt, dass die Stile der aktuellen Komponente nur auf diese selbst angewendet werden und andere Komponenten nicht beeinträchtigen. Dies ist eines der Kernmerkmale von Vue-Single-File-Komponenten.


Template-Syntax vs. JSX

Vue verwendet standardmäßigTemplate-Syntax, um Benutzeroberflächen zu erstellen.

Template-Syntax wird geschrieben in<template>HTML mit Vue-spezifischen Direktiven.

MerkmalTemplate-SyntaxJSX
SyntaxformHTML + Vue-DirektivenHTML-ähnlichen Code in JavaScript schreiben
LernaufwandNiedrig, nahe an nativem HTMLErfordert Verständnis des JSX-Kompilierungsmechanismus
FlexibilitätMittel, deklarativHoch, kann frei mit JS manipuliert werden
Vues EmpfehlungsstufeStandardmäßig empfohlenOptionale Unterstützung
Anwendbare SzenarienDie meisten SeitenentwicklungenErfordert komplexe Logik zur dynamischen Generierung der UI

Dieses Tutorial verwendet durchgängig die Template-Syntax, da sie die natürlichste und anfängerfreundlichste Art ist, Vue zu schreiben.


Praktische Übung: Vorlage leeren und das Blog-Grundgerüst schreiben

Lösche nun den standardmäßig generierten Inhalt von App.vue und ersetze ihn durch das Grundgerüst unseres Blogs.

Beispiel

<script setup>
// Die Logik wird später hier hinzugefügt
</script>

<template>
  <div id="app">
    <!-- Obere Navigationsleiste -->
    <header class="navbar">
      <h1>Mein Blog</h1>
      <nav>
        <a href="/">Startseite</a>
        <a href="#">Über uns</a>
      </nav>
    </header>

    <!-- Hauptinhaltsbereich -->
    <main class="container">
      <p>Blog-Inhalt wird hier angezeigt</p>
    </main>

    <!-- Fußzeile -->
    <footer class="footer">
      <p>© 2024 Mein Blog. Bereitgestellt von Vue3.</p>
    </footer>
  </div>
</template>

<style>
/* Globaler Reset */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

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

/* Navigationsleiste */
.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;
}

/* Hauptinhaltsbereich */
.container {
  max-width: 960px;
  margin: 40px auto;
  padding: 0 20px;
}

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

Nach dem Speichern wird der Browser automatisch aktualisiert, und Sie sehen ein sauberes Blog-Grundgerüst: obere Navigationsleiste + mittlerer Inhaltsbereich + unterer Footer.

Dies ist der Ausgangspunkt für alle nachfolgenden Kapitel.


Kapitelzusammenfassung

In diesem Kapitel hast du drei Dinge erledigt: ein Vue3-Projekt mit Vite erstellt, die Verzeichnisstruktur und die dreiteilige Struktur der SFC verstanden und das grundlegende HTML-Gerüst des Blogs geschrieben.

Wichtigste Erkenntnis: Wissen, dass eine.vueDatei aus drei Teilen besteht: template / script / style, und wie man ein Vue-Projekt zum Laufen bringt.

Weitere Erweiterungen