Vue 目錄結構 vite 項目

Vue3 項目常用的目錄結構和每個文件的作用【通過 vite 創建的項目】

vite目錄結構:

dist ? ? ? ? ? ? ? ? ? ? ? ? ?// 打包后生成的文件目錄
node_modules ? ? ? ? ? ? ? ? ?// 環境依賴
public ? ? ? ? ? ? ? ? ? ? ? ?// 公共資源目錄
?? ?favicon.ico ? ? ? ? ? ? ? // 網站圖標
src ? ? ? ? ? ? ? ? ? ? ? ? ? // 項目核心文件夾
?? ?assets ? ? ? ? ? ? ? ? ? ?// 靜態資源目錄
?? ?components ? ? ? ? ? ? ? ?// 組件目錄
?? ?router ? ? ? ? ? ? ? ? ? ?// 路由配置文件目錄
?? ? ? ?index.js ? ? ? ? ? ? ?// 路由配置文件
?? ?stores ? ? ? ? ? ? ? ? ? ?// pinia配置文件目錄
?? ? ? ?counter.js ? ? ? ? ? ?// pinia配置文件
?? ?views ? ? ? ? ? ? ? ? ? ? // 頁面文件目錄
?? ?App.vue ? ? ? ? ? ? ? ? ? // 根組件
?main.js ? ? ? ? ? ? ? ? ? // 入口文件
.gitignore ? ? ? ? ? ? ? ? ? ?// git忽略提交配置文件
index.html ? ? ? ? ? ? ? ? ? ?// 入口頁面
package-lock.json ? ? ? ? ? ? // 插件版本鎖定文件
package.json ? ? ? ? ? ? ? ? ?// 插件管理文件
README.md ? ? ? ? ? ? ? ? ? ? // 項目說明文件
vite.config.js ? ? ? ? ? ? ? ?// vite的配置文件

?dist 文件夾:用于存放我們使用 npm run build 命令打包后的項目文件。

?node_modules 文件夾:用于存放項目的各種依賴,比如 axios 等。沒有 node_modules 文件夾項目就沒法運行,可以使用 npm install 安裝項目依賴。

?public 文件夾:用于存放公共的靜態資源,這里的資源不會被 vite 打包處理。

?public / favicon.ico 圖標:網站標簽頁中的小圖標。

?src 文件夾:項目的核心文件夾,我們所寫的代碼都放在這個文件夾里。

?src / assets 文件夾:用于存放各種靜態資源,img、css 等等。

?src / components 文件夾:用于存放我們的公共組件,如 header、footer 等自定義組件。

?src / router 文件夾:用于存放路由配置文件,路由配置文件可以理解為各個頁面的地址路徑,用于讓我們訪問,同時也可以在里邊編寫全局路由守衛。

src / stores 文件夾:用于存放 pinia 配置文件,pinia 就是一個公共的數據管理文件,里邊存放著項目需要用到的數據。

?src / views 文件夾:用于存放我們開發的 vue 頁面,如 login、home 等頁面。

?src / App.vue 文件:根組件,是項目的主組件,所有的頁面都要通過 App.vue 組件顯示。

?src / main.js 文件:入口文件,主要用于初始化 Vue 實例,也可以在此文件中引入一些組件庫或者全局掛載一些變量。

?.gitignore 文件:用于配置 git 上傳時需要忽略上傳的文件。

? index.html 文件:項目入口頁面,vite 打包后的 js、css 也會自動引入到該頁面中,瀏覽器訪問項目的時候會默認打開生成好的 index.html 文件。

?package-lock.json 文件:在 npm install 時生成的一份文件,用于記錄當前項目實際安裝的各個插件具體來源地址和版本號。并且在 npm install 時,會根據該文件生成 node_modules 文件夾。

?package.json 文件:插件的基本信息,包含項目開發時所需要的插件版本,項目名稱等等。

?README.md 文件:項目的說明文件,可以記錄項目開發時的版本和開發內容。

?vite.config.js 文件:vue 的配置文件,可以用來設置代理、打包等配置。

?vite 項目運行流程:

一、項目運行時會先執行 index.html 文件

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><link rel="icon" href="/favicon.ico"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vite App</title></head><body><div id="app"></div><script type="module" src="/src/main.js"></script></body>
</html>

如果開發移動端,可以將 meta 標簽換成以下內容,禁止用戶手動縮放。

<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">

二、執行 src / main.js 文件,在此文件中引入 Vue 與各種插件,并創建 Vue 實例。

// 引入公共 CSS 文件,如果不想要可以刪掉
// 也可以將 src/assets 目錄中的 base.css 和 main.css 一并刪掉。
import "./assets/main.css";// 引入 Vue 中的 createApp 工廠函數
import { createApp } from "vue";
// 引入 pinia 狀態管理
import { createPinia } from "pinia";
// 引入 App 根組件
import App from "./App.vue";
// 引入路由配置
import router from "./router";// 創建 Vue 實例,并將 App 根組件添加到頁面中
const app = createApp(App);
// 應用 pinia
app.use(createPinia());
// 應用路由
app.use(router);
// 將 id 為 app 的元素掛載到 Vue 實例上
app.mount("#app");

三、執行 main.js 中引入的各種插件,包括 src / router / index.js 路由配置文件

import { createRouter, createWebHistory } from "vue-router";// 引入組件(方式一)
import HomeView from "../views/HomeView.vue";const router = createRouter({history: createWebHistory(import.meta.env.BASE_URL), // 歷史模式routes: [{path: "/",             // 這個 / 表示首頁name: "home",          // 路由名稱component: HomeView,   // 使用組件(方式一)},{path: "/about",        // 路由路徑name: "about",         // 路由名稱// 路由懶加載(方式二)component: () => import("../views/AboutView.vue"),},],
});export default router;

四、執行 App.vue 根組件,通過 RouterView 加載路由配置的首頁(path 為 / 的頁面)。

<template><RouterView />
</template>


五、執行路由配置的首頁 src / views / HomeView.vue 文件

<template><!-- Vue3 可以不寫根標簽 --><p class="title">{{ title }}</p>
</template><script>
// Vue3 支持 Vue2 的寫法
export default {name: "HomeView",data() {return {title: "首頁"}}
}
</script><style scoped>
.title {background-color: aqua;
}
</style>

:vite 的目錄結構并非一成不變,具體的執行流程還需要結合實際情況。

原創作者:?吳小糖

創作時間:2023.8.14

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/36246.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/36246.shtml
英文地址,請注明出處:http://en.pswp.cn/news/36246.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深入探析設計模式:工廠模式的三種姿態

深入探析設計模式&#xff1a;工廠模式的三種姿態 1. 簡單工廠模式1.1 概念1.2 案例1.3 優缺點 2. 抽象工廠模式2.1 概念2.2 案例&#xff1a;跨品牌手機生產2.3 優缺點 3. 超級工廠模式3.1 概念3.2 案例&#xff1a;動物園游覽3.3 優缺點 4. 總結 歡迎閱讀本文&#xff0c;今天…

go入門實踐四-go實現一個簡單的tcp-socks5代理服務

文章目錄 前言socks協議簡介go實現一個簡單的socks5代理運行與壓測抓包驗證 前言 SOCKS是一種網絡傳輸協議&#xff0c;主要用于客戶端與外網服務器之間通訊的中間傳遞。協議在應用層和傳輸層之間。 本文使用先了解socks協議。然后實現一個socks5的tcp代理服務端。最后&#…

英語詞法——代詞

代詞是用來代替名詞、起名詞作用的短語、分句和句子的詞。英語中代詞根據其意義和作用可分為九類:人稱代詞、物主代詞、反身代詞、相互代詞、指示代詞、疑問代詞、不定代詞、關系代詞和連接代詞。 第一節 人稱代詞 一、人稱代詞的形式和用法 人稱代詞單數復數第一人稱第二人…

【ARM 嵌入式 編譯系列 4 -- GCC 編譯屬性 __read_mostly 詳細介紹】

文章目錄 __read_mostly 介紹__read_mostly 在 linux 中的使用.data.read_mostly 介紹 __read_mostly 介紹 __read_mostly 是一個在Linux內核編程中用到的宏定義&#xff0c;這是一個gcc編譯器的屬性&#xff0c;用于告訴編譯器此變量主要用于讀取&#xff0c;很少進行寫入&am…

MYSQL中用字符串2022-07去匹配Date類型大于2022-07-01并小于2022-07-31

正文 需求上&#xff0c;是有個日期字符串&#xff0c;例如2022-07&#xff0c;代表著年月。數據庫中表對于這個字段存的是年月日&#xff0c;例如&#xff1a;2022-07-15。 我希望的是&#xff1a;獲取到2022-07-01到2022-07-31&#xff0c;之間的數據&#xff0c;條件是&…

21款美規奔馳GLS450更換中規高配主機,漢化操作更簡單

很多平行進口的奔馳GLS都有這么一個問題&#xff0c;原車的地圖在國內定位不了&#xff0c;語音交互功能也識別不了中文&#xff0c;原廠記錄儀也減少了&#xff0c;使用起來也是很不方便的。 可以實現以下功能&#xff1a; ①中國地圖 ②語音小助手&#xff08;你好&#xf…

【BASH】回顧與知識點梳理(二十六)

【BASH】回顧與知識點梳理 二十六 二十六. 二十一至二十五章知識點總結及練習26.1 總結26.2 模擬26.3 簡答題 該系列目錄 --> 【BASH】回顧與知識點梳理&#xff08;目錄&#xff09; 二十六. 二十一至二十五章知識點總結及練習 26.1 總結 Linux 操作系統上面&#xff0c…

unittest單元測試

當你在編寫測試用例時&#xff0c;可以使用Python內置的unittest模塊來進行單元測試。下面是一個逐步指南&#xff0c;幫助你理解如何編寫和運行基本的單元測試。 導入必要的模塊&#xff1a; 首先&#xff0c;你需要導入unittest模塊和需要測試的模塊&#xff08;例如&#xf…

運維監控學習筆記8

在服務器端&#xff0c;我們添加了nginx-server的主機&#xff1a; 在解決Error問題的過程中&#xff0c;我還通過zabbix_get這個命令進行了測試&#xff0c;發現是沒有的&#xff0c;后來確認是在web頁面配置的過程中&#xff0c;我輸錯了密碼。 yum install zabbix-getzabbi…

uniapp-原生地圖截屏返回base64-進行畫板編輯功能

一、場景 vue寫uniapp打包安卓包&#xff0c;實現原生地圖截屏&#xff08;andirod同事做的&#xff09;-畫板編輯功能 實現效果&#xff1a; 二、邏輯步驟簡略 1. 由 原生地圖nvue部分&#xff0c;回調返回 地圖截屏生成的base64 數據&#xff0c; 2. 通過 uni插件市場 im…

《圖解HTTP》——HTTP協議詳解

一、HTTP協議概述 HTTP是一個屬于應用層的面向對象協議&#xff0c;由于其簡捷、快速的方式&#xff0c;適用于分布式超媒體信息系統。它于1990年提出&#xff0c;經過幾年的使用與發展&#xff0c;得到不斷地完善和擴展。目前在WWW中使用的是HTTP/1.0的第六版&#xff0c;HTTP…

muduo 29 異步日志

目錄 Muduo雙緩沖異步日志模型: 異步日志實現: 為什么要實現非阻塞的日志

SQL 語句解析過程詳解

SQL 語句解析過程詳解&#xff1a; 1&#xff0e;輸入SQL語句 2&#xff0e;詞法分析------flex 使用詞法分析器&#xff08;由Flex生成&#xff09;將 SQL 語句分解為一個個單詞&#xff0c;這些單詞被稱為“標記“。標記包括關鍵字、標識符、運算符、分隔符等。 2.1 flex 原…

【CSS 布局】水平垂直方向居中

【CSS 布局】水平垂直方向居中 單行元素 <div class"container"><div class"item"></div> </div>方式一&#xff1a;relative 和 absolute .container {position: relative;height: 400px;border: 1px solid #ccc;.item {posit…

20個互聯網用戶Python數據分析項目

這篇文章給大家整理了20個互聯網用戶數據分析的項目。所有收錄的項目&#xff0c;進行了嚴格的篩選&#xff0c;標準有二&#xff1a; 1.有解說性文字&#xff0c;大家能知道每一步在干嘛&#xff0c;新手友好 2.數據集公開&#xff0c;保證大家可以在原文的基礎上自行探索 更…

[保研/考研機試] KY96 Fibonacci 上海交通大學復試上機題 C++實現

題目鏈接&#xff1a; KY96 Fibonacci https://www.nowcoder.com/share/jump/437195121692000803047 描述 The Fibonacci Numbers{0,1,1,2,3,5,8,13,21,34,55...} are defined by the recurrence: F00 F11 FnFn-1Fn-2,n>2 Write a program to calculate the Fibon…

【STM32】FreeRTOS互斥量學習

互斥量&#xff08;Mutex&#xff09; 互斥量又稱互斥信號量&#xff08;本質也是一種信號量&#xff0c;不具備傳遞數據功能&#xff09;&#xff0c;是一種特殊的二值信號量&#xff0c;它和信號量不同的是&#xff0c;它支持互斥量所有權、遞歸訪問以及防止優先級翻轉的特性…

人文景區有必要做VR云游嗎?如何滿足游客出行需求?

VR云游在旅游行業中的應用正在快速增長&#xff0c;為游客帶來沉浸式體驗的同時&#xff0c;也為文旅景區提供了新的營銷方式。很多人說VR全景展示是虛假的&#xff0c;比不上真實的景區觸感&#xff0c;人文景區真的有必要做VR云游嗎&#xff1f;我的答案是很有必要。 如果你認…

【跟小嘉學 Rust 編程】十二、構建一個命令行程序

系列文章目錄 【跟小嘉學 Rust 編程】一、Rust 編程基礎 【跟小嘉學 Rust 編程】二、Rust 包管理工具使用 【跟小嘉學 Rust 編程】三、Rust 的基本程序概念 【跟小嘉學 Rust 編程】四、理解 Rust 的所有權概念 【跟小嘉學 Rust 編程】五、使用結構體關聯結構化數據 【跟小嘉學…

【Pytroch】基于K鄰近算法的數據分類預測(Excel可直接替換數據)

【Pytroch】基于K鄰近算法的數據分類預測&#xff08;Excel可直接替換數據&#xff09; 1.模型原理2.數學公式3.文件結構4.Excel數據5.下載地址6.完整代碼7.運行結果 1.模型原理 K最近鄰&#xff08;K-Nearest Neighbors&#xff0c;簡稱KNN&#xff09;是一種簡單但常用的機器…