vue項目總結(jié)之文件夾結(jié)構(gòu)配置詳解
前言
之前一段時間都在使用 vue 開發(fā)后臺管理系統(tǒng),在摸索的過程中對 vue 本身和模塊化、規(guī)范化開發(fā)有了更深的認(rèn)知,現(xiàn)在記錄下來,希望對其他需要開發(fā)項目的人有幫助。
基于 vue.js 的前端開發(fā)環(huán)境,用于前后端分離后的單頁應(yīng)用開發(fā),可以在開發(fā)時使用 ES Next、scss 等最新語言特性。下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
項目配置
首先,在確定好使用的框架和組件庫后,先要大致了解它們,做到文檔基本熟悉。本次開發(fā)使用到的有: 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 # 創(chuàng)建一個基于 webpack 模板的新項目my-project $ vue init webpack my-project # 進(jìn)入項目目錄 $ cd my-project # 安裝依賴 $ npm install # 運(yùn)行項目 $ npm run dev
運(yùn)行之后,看到以下頁面表明項目環(huán)境搭建成功:
項目結(jié)構(gòu)
搭建成功后,使用編輯器打開項目目錄,大致是這樣的結(jié)構(gòu):
相關(guān)文件和文件夾的含義:
- build 文件夾: 里面是對 webpack 開發(fā)和打包的相關(guān)設(shè)置,包括入口文件、輸出文件、使用的模塊等;
- config 文件夾: 主要是指定開發(fā)和打包中的靜態(tài)資源路徑、要壓縮的文件類型、開發(fā)使用的端口號、開發(fā)使用虛擬服務(wù)器跨域請求 api 等。
- node_modules: 項目的依賴庫;
- src 文件夾: 我們主要操作的地方,組件的增加修改等都在這個文件夾里操作,下文會有詳細(xì)介紹;
- static 文件夾: 靜態(tài)資源文件夾,放置不會變動的資源,直接被復(fù)制到最終的打包目錄(默認(rèn)是dist/static)下;
- .babelrc: 使用 babel 的配置文件,用來設(shè)置轉(zhuǎn)碼規(guī)則和插件;
- .editorconfig: 代碼的規(guī)范文件,規(guī)定使用空格或 tab 縮進(jìn),縮進(jìn)的長度是兩位還是四位之類的代碼風(fēng)格,使用的話需要在編輯器里下載對應(yīng)的插件;
- .eslintignore: 指定 eslint 忽略的文件;
- .eslintrc: 配置 eslint 的檢測規(guī)則,強(qiáng)制按照規(guī)則書寫代碼;
- .gitignore: 指定 git 忽略的文件,所有 git 操作均不會對其生效;
- .postcssrc: 指定使用的 css 預(yù)編譯器,里面默認(rèn)配置了 autoprefixer ,自動補(bǔ)全瀏覽器前綴;
- favicon.ico: 瀏覽器標(biāo)簽頁 title 旁邊的小圖標(biāo),這是需要我們自己粘貼過來的;
- index.html: 首頁文件,項目運(yùn)行的時候,會自動將我們在 src 文件夾里生成的組件插入這個文件里;
- LICENSE: 項目聲明的 license;
- package-lock.json: 當(dāng) node_modules 或 package.json 發(fā)生變化時自動生成的文件。這個文件主要功能是確定當(dāng)前安裝的包的依賴,以便后續(xù)重新安裝的時候生成相同的依賴,而忽略項目開發(fā)過程中有些依賴已經(jīng)發(fā)生的更新;
- package.json: 指定項目開發(fā)和生成環(huán)境中需要使用的依賴庫;
- README.md: 相當(dāng)于是一個備注文件,對項目開發(fā)過程中需要注意的地方進(jìn)行一些說明。
src 文件夾結(jié)構(gòu)
src 文件夾里的文件夾設(shè)置是靈活的,可以根據(jù)自己的習(xí)慣進(jìn)行,不必雷同。下面是這次項目的結(jié)構(gòu):
- assets: 放置靜態(tài)資源,包括公共的 css 文件、 js 文件、iconfont 字體文件、img 圖片文件 以及其他資源類文件。之所以強(qiáng)調(diào)是公共的 css 文件,是因為要在組件的 css 標(biāo)簽里加入 ‘scoped‘ 標(biāo)記,將其作用范圍限制在此組件以及調(diào)用它的父級組件中,避免污染全局樣式;
- components: 放置通用模塊組件。項目里總會有一些復(fù)用的組件,例如彈出框、發(fā)送手機(jī)驗證碼、圖片上傳等,將它們作為通用組件,避免重復(fù)工作;
- http: 放置與后臺 api 相關(guān)的文件。這里面有 axios 庫的實例配置文件、使用配置的 axios 實例接入 api 獲取數(shù)據(jù)的函數(shù)的集合的文件;
- mixins: 放置混合選項的文件。具體來說,相當(dāng)于是公用函數(shù)的集合,在組件中引用時,可以作用于組件而不必書寫重復(fù)的方法;
- pages: 放置主要頁面的組件。例如登錄頁、用戶信息頁等。通常是這里的組件本身寫入一些結(jié)構(gòu),再引入通用模塊組件,形成完整的頁面;
- router: 放置路由設(shè)置文件,指定路由對應(yīng)的組件;
- store: 放置 vuex 需要的狀態(tài)關(guān)聯(lián)文件,設(shè)置公共的 state、mutations 等;
- App.vue: 入口組件,pages 里的組件會被插入此組件中,此組件再插入 index.html 文件里,形成單頁面應(yīng)用;
- main.js: 入口 js 文件,影響全局,作用是引入全局使用的庫、公共的樣式和方法、設(shè)置路由等。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
element-plus dialog v-loading不生效問題及解決
這篇文章主要介紹了element-plus dialog v-loading不生效問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03解決vue3項目打包發(fā)布到服務(wù)器后訪問頁面顯示空白問題
這篇文章主要介紹了解決vue3項目打包發(fā)布到服務(wù)器后訪問頁面顯示空白問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03ejsExcel模板在Vue.js項目中的實際運(yùn)用
這篇文章主要介紹了ejsExcel模板在Vue.js項目中的實際運(yùn)用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-01