vue 腳手架文件結構及載入過程淺談

来源:https://www.cnblogs.com/beyond-tester/archive/2023/08/23/17653058.html
-Advertisement-
Play Games

1. 初始化腳手架 1.1 全局安裝 @vue/cli npm install -g @vue/cli 1.2 切換到創建項目的目錄,執行 vue create projectname 1.3 選擇符合自己要求的項進行Y/N,最終生成項目文件 2. 腳手架文件結構 |-- node_modules: ...


1. 初始化腳手架

  1.1  全局安裝 @vue/cli  npm install -g @vue/cli

  1.2 切換到創建項目的目錄,執行 vue create projectname

  1.3 選擇符合自己要求的項進行Y/N,最終生成項目文件

2. 腳手架文件結構

|-- node_modules: 存放下載依賴的文件夾
|-- public: 存放不會變動靜態的文件,它與src/assets的區別在於,public目錄中的文件不被webpack打包處理,會原
樣拷貝到dist目錄下
    |-- index.html: 主頁面文件
    |-- favicon.ico: 在瀏覽器上顯示的圖標
|-- src: 源碼文件夾
    |-- assets: 存放組件中的靜態資源
    |-- components: 存放一些公共組件
    |-- views: 存放所有的路由組件
    |-- router: 存放路由配置信息
    |-- store: 存放公共狀態 vuex
    |-- App.vue: 應用根主組件
    |-- main.js: 應用入口 js
|-- .browserslistrc: 指定了項目可相容的目標瀏覽器範圍, 對應是package.json 的 browserslist選項
|-- .eslintrc.js: eslint相關配置
|-- .gitignore: git 版本管制忽略的配置
|-- babel.config.js: babel 的配置,即ES6語法編譯配置
|-- package-lock.json: 用於記錄當前狀態下實際安裝的各個包的具體來源和版本號等, 保證其他人在 npm install 項
目時大家的依賴能保證一致.
|-- package.json: 項目基本信息,包依賴配置信息等
|-- postcss.config.js: postcss一種對css編譯的工具,類似babel對js的處理
|-- README.md: 項目描述說明的 readme 文件
  1. package.json:這是一個重要的配置文件,用於定義項目的依賴項、腳本命令和其他元數據。它包含了項目的名稱、版本號、作者等信息,還列出了項目所需的各種包依賴。這個文件是使用npm(Node Package Manager)進行包管理和構建的基礎。

  2. public文件夾:這個文件夾包含了一些靜態資源,如HTML文件、圖標和其他非編譯的文件。在構建過程中,這些文件會直接複製到最終的構建目錄中,可以在這裡放置一些全局的資源。

  3. src文件夾:這是你開發項目的主要目錄。它包含了Vue組件、樣式文件、JavaScript文件和其他資源。下麵是src文件夾中的一些重要文件和文件夾:

    • main.js:這是項目的入口文件,用於初始化Vue應用實例,並將根組件掛載到DOM中。你可以在這裡引入全局樣式、插件和其他配置。

    • App.vue:這是根組件,是整個應用的容器。它可以包含其他組件,並定義應用的整體結構和佈局。

    • components文件夾:這個文件夾用於存放應用的各種Vue組件。你可以根據需要創建子文件夾來組織組件。

    • assets文件夾:這個文件夾用於存放應用所需的靜態資源,如圖像、字體文件等。

    • router文件夾:如果你在初始化項目時選擇了Vue Router插件,這個文件夾將包含用於定義路由的文件。

    • views文件夾:這個文件夾通常用於存放與路由對應的視圖組件,每個視圖組件對應應用中的一個頁面。

  4. node_modules文件夾:這個文件夾包含了項目所需的所有依賴包,這些包是通過package.json文件中的配置來安裝的。你不需要手動管理這個文件夾,npm會自動安裝和更新依賴。

註: components文件夾通常用於存放可復用的、通用的組件,這些組件可以在應用的不同部分進行重覆使用。views文件夾通常用於存放與路由對應的視圖組件,每個視圖組件對應應用中的

一個頁面。這些組件通常較大粒度,包含了特定頁面的整體結構和佈局,可能由多個小組件組成。

2.1 src文件下各文件使用示例說明:

main.js

  • main.js是項目的入口文件,用於初始化Vue應用實例並將根組件掛載到DOM中。
  • 你可以在main.js中引入全局樣式、插件和其他配置。
  • 例如,在main.js中引入全局CSS文件:
import Vue from 'vue';
import App from './App.vue';
import './assets/global.css';

new Vue({
  render: h => h(App)
}).$mount('#app');

App.vue

  • App.vue是根組件,是整個應用的容器,定義應用的整體結構和佈局。
  • 它可以包含其他組件,並通過插槽(slot)或路由(Vue Router)載入不同的內容。
  • 例如,一個簡單的App.vue可能包含一個導航欄和一個內容區域:
<template>
  <div>
    <Navbar />
    <router-view />
  </div>
</template>

<script>
import Navbar from './components/Navbar.vue';

export default {
  components: {
    Navbar
  }
};
</script>

components文件夾:

  • components文件夾用於存放應用的各種Vue組件。
  • 你可以根據需要創建子文件夾來組織組件。
  • 例如,你可以在components文件夾下創建一個Button.vue組件,併在其他組件中引用它:
<template>
  <button class="button">{{ label }}</button>
</template>

<script>
export default {
  props: {
    label: {
      type: String,
      required: true
    }
  }
};
</script>

<style scoped>
.button {
  /* 樣式定義 */
}
</style>

assets文件夾:

  • assets文件夾用於存放應用所需的靜態資源,如圖像、字體文件等。
  • 這些資源可以在組件中通過相對路徑引用。
  • 例如,你可以將應用的Logo圖像放置在assets文件夾下,併在組件中使用它:
<template>
  <img src="@/assets/logo.png" alt="Logo">
</template>

router文件夾:

  • 如果你在初始化項目時選擇了Vue Router插件,router文件夾將包含用於定義路由的文件。
  • 你可以在這裡配置應用的路由規則和相應的組件。
  • 例如,在router/index.js文件中定義一個簡單的路由規則:
import Vue from 'vue';
import VueRouter from 'vue-router';
import Home from '../views/Home.vue';
import About from '../views/About.vue';

Vue.use(VueRouter);

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

const router = new VueRouter({
  routes
});

export default router;

  

3.  腳手架整體的載入過程:

  1. 當你啟動開發伺服器或構建項目時,Vue CLI會讀取package.json文件中的配置信息,並執行相應的腳本命令。

  2. 在執行腳本命令之前,Vue CLI會使用Webpack等工具根據配置文件(如vue.config.js)進行項目的構建和打包。

  3. 在構建過程中,Webpack會根據main.js文件作為入口文件,逐個解析和載入其他組件、樣式文件和資源文件。

  4. main.js文件被載入時,它會創建Vue應用實例,並將根組件App.vue掛載到HTML頁面的特定DOM元素上。

  5. 根組件App.vue可以包含其他組件,這些組件會在需要時被動態載入和渲染。

  6. 當應用程式運行時,Vue會根據路由配置(如果有)動態載入和渲染相應的視圖組件。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ![](https://img2023.cnblogs.com/blog/3076680/202308/3076680-20230822115524099-438612716.png) # 1. 在執行語句之前,會先檢查下列事項 ## 1.1. 是否有許可權執行該語句 ## 1.2. 是否有許可權訪問指 ...
  • 排序查詢:select 欄位列表 from [表名] order by [欄位名1] [asc升序/desc降序,預設值為升序],[欄位名2] [排序方式];//欄位名1為優先順序排序,如果欄位名1有相同的,再以欄位名2排序 聚合函數: count 統計數量(一般不選null的列) max 最大值 m ...
  • ## 1、字元集概述 - Oracle語言環境的描述包括三部分:language、territory、characterset(語言、地域、字元集) - language:主要指定伺服器消息的語言,提示信息顯示中文還是英文 - territory:主要指定伺服器的數字和日期的格式 - charact ...
  • 在日常工作中,有時會遇到一次性往頁面中插入大量數據的場景,在數棧的[離線開發](https://www.dtstack.com/dtinsight/batchworks?src=szsm)(以下簡稱離線)產品中,就有類似的場景。本文將通過分享一個實際場景中的[前端開發](https://www.dt ...
  • 第14屆中國資料庫技術大會(DTCC2023)上,華為雲資料庫GaussDB首席架構師馮柯對華為雲GaussDB資料庫的高級壓縮技術進行了詳細的解讀。 ...
  • 最近接到了一個新需求,要求提供查詢關註對象的粉絲列表介面功能。該功能的難點就是關註對象的粉絲數量過多,不少店鋪的粉絲數量都是千萬級別,並且有些大V粉絲數量能夠達到上億級別 ...
  • # Mybatis-9.28 環境: - JDK:1.8 - Mysql:8.032 - maven:3.9.2 - IDEA 回顧: - JDBC - Mysql - JavaSE - Maven - Junit ## 01 簡介 ### 1.1 什麼是MyBatis ![](https://im ...
  • **摘要:** 在DBA的日常工作中,快速部署資料庫高可用架構,且標準化地入網部署資料庫是一項重要的基礎任務。本文將介紹常見的部署MGR的方式,並重點介紹萬里資料庫的GreatADM資料庫管理平臺進行圖形化、可視化、標準化的部署過程,以提高交付效率和質量,給DBA提供一種全新的體驗。(本文閱讀大約需 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...