1. 程式人生 > >Vue專案總結的一些資料夾結構配置

Vue專案總結的一些資料夾結構配置

之前一段時間都在使用 vue 開發後臺管理系統,在摸索的過程中對 vue 本身和模組化、規範化開發有了更深的認知,現在記錄下來,希望對其他需要開發專案的人有幫助。

專案配置

首先,在確定好使用的框架和元件庫後,先要大致瞭解它們,做到文件基本熟悉。本次開發使用到的有: vue , vuex , axios , elementUI 。

然後可以按官方指引,使用 vue-cli 搭建 vue 的專案,在專案裡按照上面的文件嘗試修改,加深理解:

# 安裝依賴庫,建議指定 vue 和 element 版本,避免版本升級帶來意料之外的 bug

$ npm install vue@2.1.6  element-ui@1
.4.6 vuex axios #全域性安裝腳手架 $ npm install -g vue-cli # 建立一個基於 webpack 模板的新專案my-project $ vue init webpack my-project # 進入專案目錄 $ cd my-project # 安裝依賴 $ npm install # 執行專案 $ npm run dev

執行之後,看到以下頁面表明專案環境搭建成功:

clipboard.png

專案結構

搭建成功後,使用編輯器開啟專案目錄,大致是這樣的結構:

clipboard.png

相關檔案和資料夾的含義:

build 資料夾: 裡面是對 webpack 開發和打包的相關設定,包括入口檔案、輸出檔案、使用的模組等;

config 資料夾: 主要是指定開發和打包中的靜態資源路徑、要壓縮的檔案型別、開發使用的埠號、開發使用虛擬伺服器跨域請求 api 等。

node_modules: 專案的依賴庫;

src 資料夾: 我們主要操作的地方,元件的增加修改等都在這個資料夾裡操作,下文會有詳細介紹;

static 資料夾: 靜態資原始檔夾,放置不會變動的資源,直接被複制到最終的打包目錄(預設是dist/static)下;

.babelrc: 使用 babel 的配置檔案,用來設定轉碼規則和外掛;

.editorconfig: 程式碼的規範檔案,規定使用空格或 tab 縮排,縮排的長度是兩位還是四位之類的程式碼風格,使用的話需要在編輯器裡下載對應的外掛;

.eslintignore: 指定 eslint 忽略的檔案;

.eslintrc: 配置 eslint 的檢測規則,強制按照規則書寫程式碼;

.gitignore: 指定 git 忽略的檔案,所有 git 操作均不會對其生效;

.postcssrc: 指定使用的 css 預編譯器,裡面預設配置了 autoprefixer ,自動補全瀏覽器字首;

favicon.ico: 瀏覽器標籤頁 title 旁邊的小圖示,這是需要我們自己貼上過來的;

index.html: 首頁檔案,專案執行的時候,會自動將我們在 src 資料夾裡生成的元件插入這個檔案裡;

LICENSE: 專案宣告的 license;

package-lock.json: 當 node_modules 或 package.json 發生變化時自動生成的檔案。這個檔案主要功能是確定當前安裝的包的依賴,以便後續重新安裝的時候生成相同的依賴,而忽略專案開發過程中有些依賴已經發生的更新;

package.json: 指定專案開發和生成環境中需要使用的依賴庫;

README.md: 相當於是一個備註檔案,對專案開發過程中需要注意的地方進行一些說明。

src 資料夾結構

src 資料夾裡的資料夾設定是靈活的,可以根據自己的習慣進行,不必雷同。下面是這次專案的結構:

clipboard.png

assets: 放置靜態資源,包括公共的 css 檔案、 js 檔案、iconfont 字型檔案、img 圖片檔案 以及其他資源類檔案。之所以強調是公共的 css 檔案,是因為要在元件的 css 標籤里加入 ‘scoped‘ 標記,將其作用範圍限制在此元件以及呼叫它的父級元件中,避免汙染全域性樣式;

components: 放置通用模組元件。專案裡總會有一些複用的元件,例如彈出框、傳送手機驗證碼、圖片上傳等,將它們作為通用元件,避免重複工作;

http: 放置與後臺 api 相關的檔案。這裡面有 axios 庫的例項配置檔案、使用配置的 axios 例項接入 api 獲取資料的函式的集合的檔案;

mixins: 放置混合選項的檔案。具體來說,相當於是公用函式的集合,在元件中引用時,可以作用於元件而不必書寫重複的方法;

pages: 放置主要頁面的元件。例如登入頁、使用者資訊頁等。通常是這裡的元件本身寫入一些結構,再引入通用模組元件,形成完整的頁面;

router: 放置路由設定檔案,指定路由對應的元件;

store: 放置 vuex 需要的狀態關聯檔案,設定公共的 state、mutations 等;

App.vue: 入口元件,pages 裡的元件會被插入此元件中,此元件再插入 index.html 檔案裡,形成單頁面應用;

main.js: 入口 js 檔案,影響全域性,作用是引入全域性使用的庫、公共的樣式和方法、設定路由等。

原文地址:https://segmentfault.com/a/1190000012392160