Vue3-Projektbeschreibung

Ein Vue-3-Projekt besteht aus mehreren Dateien und Ordnern, die jeweils einen bestimmten Zweck haben.

Das Folgende ist eine grundlegende Analyse des Vue-3-Projektcodes, um Ihnen zu helfen, die Projektstruktur und die Funktion jedes Teils zu verstehen.

  • Ein Vue-3-Projekt besteht aus mehreren Dateien und Ordnern, und zu den Kerndateien gehörenindex.html、main.jsundApp.vue。

  • Vue-Komponenten sind die grundlegenden Bausteine einer Anwendung, die mithilfe von Single-File Components (.vueDatei) definiert werden.

  • Vue Router wird für die Routenverwaltung verwendet und Vuex für die Zustandsverwaltung.


Projektstruktur

Ein Vue-3-Projekt enthält normalerweise die folgenden Dateien und Ordner:

my-vue-app/
├── node_modules/       # 项目依赖的第三方库
├── public/             # 静态资源文件夹
│   ├── index.html      # 应用的 HTML 模板
│   └── ...             # 其他静态资源(如图片、字体等)
├── src/                # 项目源代码
│   ├── assets/         # 静态资源(如图片、字体等)
│   ├── components/     # 可复用的 Vue 组件
│   ├── views/          # 页面级组件
│   ├── App.vue         # 根组件
│   ├── main.js         # 项目入口文件
│   ├── router.js       # 路由配置
│   ├── store.js        # Vuex 状态管理配置
│   └── ...             # 其他配置和资源
├── package.json        # 项目配置和依赖管理
├── package-lock.json   # 依赖的精确版本锁定文件
└── README.md           # 项目说明文档

Kern-Dateianalyse

public/index.html

public/index.htmlEs ist die HTML-Vorlagendatei der Vue-Anwendung.

Vue wird die Anwendung an<div id="app"></div>darin abgelegt werden.

Beispiel

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Vue App</title>
  </head>
  <body>
    <div id="app"></div>
  </body>
</html>

src/main.js

src/main.jsEs ist die Einstiegsdatei der Vue-Anwendung.

src/main.jsEs ist dafür verantwortlich, die Vue-Anwendungsinstanz zu erstellen und die Stammkomponente (normalerweise App.vue) an das div#app in index.html zu mounten.

Beispiel

import { createApp } from 'vue';
import App from './App.vue';

createApp(App).mount('#app');

src/App.vue

src/App.vueEs ist die Stammkomponente der Vue-Anwendung.

src/App.vueNormalerweise enthält es das Hauptlayout und die Routenansichten der Anwendung.

Beispiel

<template>
  <div id="app">
    <h1>Hallo, Vue 3!</h1>
    <router-view></router-view> <!-- Router-Ansicht -->
  </div>
</template>

<script>
export default {
  name: 'App',
};
</script>

<style>
#app {
  text-align: center;
  margin-top: 50px;
}
</style>

src/components/

src/components/Der Ordner enthält wiederverwendbare Vue-Komponenten.

Beispiel: HelloWorld.vue

<template>
  <div>
    <h2>Hallo, Welt!</h2>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
};
</script>

<style scoped>
h2 {
  color: blue;
}
</style>

src/views/

src/views/Der Ordner enthält Komponenten auf Seitenebene, die normalerweise zusammen mit der Routing-Konfiguration verwendet werden.

Beispiel: Home.vue

<template>
  <div>
    <h2>Startseite</h2>
  </div>
</template>

<script>
export default {
  name: 'Home',
};
</script>

src/router.js

src/router.jsEs ist die Konfigurationsdatei für den Vue Router, die zum Definieren von Routen verwendet wird.

Beispiel

import { createRouter, createWebHistory } from 'vue-router';
import Home from './views/Home.vue';

const routes = [
  {
    path: '/',
    name: 'Home',
    component: Home,
  },
];

const router = createRouter({
  history: createWebHistory(),
  routes,
});

export default router;

src/store.js

src/store.jsEs ist die Konfigurationsdatei für die Vuex-Zustandsverwaltung (wenn Vuex verwendet wird).

Beispiel

import { createStore } from 'vuex';

export default createStore({
  state: {
    message: 'Hello, Vuex!',
  },
  mutations: {
    setMessage(state, newMessage) {
      state.message = newMessage;
    },
  },
  actions: {
    updateMessage({ commit }, newMessage) {
      commit('setMessage', newMessage);
    },
  },
});

package.json

package.jsonSie ist die Projektkonfigurationsdatei, die Projektmetadaten, Abhängigkeiten und Skripte enthält.

Beispiel

{
  "name": "my-vue-app",
  "version": "1.0.0",
  "scripts": {
    "serve": "vue-cli-service serve", // Entwicklungsserver starten
    "build": "vue-cli-service build", // Produktionscode erstellen
    "lint": "vue-cli-service lint"    // Code-Formatierung
  },
  "dependencies": {
    "vue": "^3.2.0",
    "vue-router": "^4.0.0",
    "vuex": "^4.0.0"
  }
}

Grundstruktur von Vue-Komponenten

Vue-Komponenten sind die zentralen Bausteine einer Vue-Anwendung.

Eine Komponente enthält normalerweise die folgenden Teile:

1. Single-File-Komponenten (.vue-Dateien)

A.vueDie Datei enthält drei Teile:<template>、<script>und<style>。

Beispiel

<template>
  <div>
    <h2>{{ message }}</h2>
    <button @click="updateMessage">Nachricht aktualisieren</button>
  </div>
</template>

<script>
export default {
  name: 'MyComponent',
  data() {
    return {
      message: 'Hello, Vue!',
    };
  },
  methods: {
    updateMessage() {
this.message = 'Message updated!';
    },
  },
};
</script>

<style scoped>
h2 {
  color: green;
}
</style>

2. Template (<template>)

  • Definiert die UI der Komponente mithilfe von HTML und Vue-Template-Syntax.

  • Unterstützt Interpolation ({{ }}), Direktiven (wie z. B.v-if、v-for) und Ereignisbindung (wie z. B.@click)。

3. Script (<script>)

  • Definiert die Logik der Komponente, einschließlich data, methods, Lifecycle-Hooks usw.

  • Verwenden Sieexport defaultum Komponentenoptionen zu exportieren.

4. Style (<style>)

  • Definiert die Styles der Komponente.

  • Verwendungscopeddas Attribut kann die Styles auf die aktuelle Komponente beschränken.


Ausführungsprozess eines Vue-Projekts

  1. Den Entwicklungsserver starten:

    • Führen Sienpm run serveoderyarn serveum den Entwicklungsserver zu starten.

    • Öffnen Sie den Browser und besuchen Siehttp://localhost:8080um die Anwendung anzuzeigen.

  2. Produktionscode erstellen:

    • Führen Sienpm run buildoderyarn buildum optimierten Produktionscode zu generieren.

  3. Code-Formatierung:

    • Führen Sienpm run lintoderyarn lintum den Code zu formatieren.

Andere Erweiterungen