1. 程式人生 > >圖解Vue.js專案及其目錄結構

圖解Vue.js專案及其目錄結構

  專案包含:

  • 基礎庫: vue.jsvue-routervuexwhatwg-fetch
  • 編譯/打包工具:webpackbabelnode-sass
  • 單元測試工具:karmamochasinon-chai
  • 本地伺服器:express

build:最終釋出的程式碼的存放位置。
  config:配置路徑、埠號等一些資訊,我們剛開始學習的時候選擇預設配置。
  node_modules:npm 載入的專案依賴模組。
  src:這裡是我們開發的主要目錄,基本上要做的事情都在這個目錄裡面,裡面包含了幾個目錄及檔案:
  assets:放置一些圖片,如logo等
  components:目錄裡放的是一個元件檔案,可以不用。
   App.vue:專案入口檔案,我們也可以將元件寫這裡,而不使用components目錄。
   main.js :專案的核心檔案
   static:靜態資源目錄,如圖片、字型等。
   test:初始測試目錄,可刪除
   .XXXX檔案:配置檔案。
   index.html:首頁入口檔案,可以新增一些meta資訊或者同統計程式碼啥的。
   package.json:專案配置檔案。
   README.md:專案的說明檔案。

目錄結構

  1. ├── README.md 專案介紹

  2. ├── index.html 入口頁面

  3. ├── build 構建指令碼目錄

  4. │   ├── build-server.js 執行本地構建伺服器,可以訪問構建後的頁面

  5. │   ├── build.js 生產環境構建指令碼

  6. │   ├── dev-client.js 開發伺服器熱過載指令碼,主要用來實現開發階段的頁面自動重新整理

  7. │   ├── dev-server.js 執行本地開發伺服器

  8. │   ├── utils.js 構建相關工具方法

  9. │   ├── webpack.base.conf.js wabpack基礎配置

  10. │   ├── webpack.dev.conf.js wabpack開發環境配置

  11. │   └── webpack.prod.conf.js wabpack生產環境配置

  12. ├── config 專案配置

  13. │   ├── dev.env.js 開發環境變數

  14. │   ├── index.js 專案配置檔案

  15. │   ├── prod.env.js 生產環境變數

  16. │   └── test.env.js 測試環境變數

  17. ├── mock mock資料目錄

  18. │   └── hello.js

  19. ├── package.json npm包配置檔案,裡面定義了專案的npm指令碼,依賴包等資訊

  20. ├── src 原始碼目錄

  21. │   ├── main.js 入口js檔案

  22. │   ├── app.vue 根元件

  23. │ ├── components 公共元件目錄

  24. │   │   └── title.vue

  25. │   ├── assets 資源目錄,這裡的資源會被wabpack構建

  26. │   │   └── images

  27. │   │   └── logo.png

  28. │   ├── routes 前端路由

  29. │   │   └── index.js

  30. │   ├── store 應用級資料(state)

  31. │   │   └── index.js

  32. │   └── views 頁面目錄

  33. │   ├── hello.vue

  34. │   └── notfound.vue

  35. ├── static 純靜態資源,不會被wabpack構建。

  36. └── test 測試檔案目錄(unit&e2e)

  37. └── unit 單元測試

  38. ├── index.js 入口指令碼

  39. ├── karma.conf.js karma配置檔案

  40. └── specs 單測case目錄

  41. └── Hello.spec.js

環境安裝

本專案依賴 node.js, 使用前先安裝 node.js 和 cnpm(顯著提升依賴包的下載速度)。

  1. 然後安裝 cnpm 命令:

     npm install -g cnpm --registry=https://registry.npm.taobao.org
    

快速開始

  1. git clone https://github.com/hanan198501/vue-spa-template.git

  2. cd vue-spa-template

  3. cnpm install

  4. npm run dev

命令列表:

  1. #開啟本地開發伺服器,監控專案檔案的變化,實時構建並自動重新整理瀏覽器,瀏覽器訪問 http://localhost:8081

  2. npm run dev

  3. #使用生產環境配置構建專案,構建好的檔案會輸出到 "dist" 目錄,

  4. npm run build

  5. #執行構建伺服器,可以檢視構建的頁面

  6. npm run build-server

  7. #執行單元測試

  8. npm run unit

前後端分離

專案基於 spa 方式實現前後端分離,伺服器通過 nginx 區分前端頁面和後端介面請求,分發到不同服務。前端物理上只有一個入口頁面, 路由由前端控制(基於vue-router),根據不同的 url 載入相應資料和元件進行渲染。

介面 mock

前後端分離後,開發前需要和後端同學定義好介面資訊(請求地址,引數,返回資訊等),前端通過 mock 的方式,即可開始編碼,無需等待後端介面 ready。 專案的本地開發伺服器是基於 express 搭建的,通過 express 的中介軟體機制,我們已經在 dev-server 中添加了介面 mock 功能。 開發時,介面的 mock 資料統一放在 mock 目錄下,每個檔案內如下:

  1. module.exports = {

  2. // 介面地址

  3. api: '/api/hello',

  4. // 返回資料 參考http://expressjs.com/zh-cn/4x/api.html

  5. response: function (req, res) {

  6. res.send(`

  7. <p>hello vue!</p>

  8. `);

  9. }

  10. }

模組化

開發時可以使用 ES2015 module 語法,構建時每個檔案會編譯成 amd 模組。

元件化

整個應用通過 vue 元件的方式搭建起來,通過 vue-router 控制相應元件的展現,元件樹結構如下:

  1. app.vue 根元件(整個應用只有一個)

  2. ├──view1.vue 頁面級元件,放在 views 目錄裡面,有子元件時,可以建立子目錄

  3. │ ├──component1.vue 功能元件,公用的放在 components 目錄,否則放在 views 子目錄

  4. │ ├──component2.vue

  5. │ └──component3.vue

  6. ├──view2.vue

  7. │ ├──component1.vue

  8. │ └──component4.vue

  9. └──view3.vue

  10. ├──component5.vue

  11. ……

單元測試

可以為每個元件編寫單元測試,放在 test/unit/specs 目錄下面, 單元測試用例的目錄結構建議和測試的檔案保持一致(相對於src),每個測試用例檔名以 .spec.js結尾。 執行 npm run unit 時會遍歷所有的 spec.js 檔案,產出測試報告在 test/unit/coverage 目錄。

聯調方式

前後端分離後,由於服務端和前端的開發環境處於2臺不同的機器上,前端的非同步請求需要代理到後端機器中。 聯調的時候,只需通過 proxy 引數執行 dev 指令碼即可,所有 mock 目錄下定義的介面將會轉發到 proxy 引數指定的機器:

  1. # 192.168.36.90:8088 為後端機器的環境地址

  2. npm run dev -- --proxy=192.168.36.90:8088

è¿éåå¾çæè¿°

執行專案:

  • 1.cd project-name

  • 2.npm install

  • 3.npm run dev

  • 4.在瀏覽器輸入localhost:8080

  • main.js 是我們的入口檔案,主要作用是初始化vue例項並使用需要的外掛
import Vue from 'vue'
import App from './App'

/* eslint-disable no-new */
new Vue({
  el: '#app',
  template: '<App/>',
  components: { App }
})
  • App.vue是我們的主元件,所有頁面都是在App.vue下進行切換的。其實你也可以理解為所有的路由也是App.vue的子元件。所以我將router標示為App.vue的子元件。
<template>
  <div id="app">
    <img src="./assets/logo.png">
    <hello></hello>
  </div>
</template>

<script>
import Hello from './components/Hello'

export default {
  name: 'app',
  components: {
    Hello
  }
}
</script>

<style>
#app {
  font-family: 'Avenir', Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

相關推薦

圖解Vue.js專案及其目錄結構

  專案包含: 基礎庫: vue.js、vue-router、vuex、whatwg-fetch 編譯/打包工具:webpack、babel、node-sass 單元測試工具:karma、mocha、sinon-chai 本地伺服器:express build:最終釋

從零開始:一個正式的vue+webpack專案目錄結構是怎麼形成的

如何從零開始一個vue+webpack前端工程工作流的搭建,首先我們先從專案的目錄結構入手。一個持續可發展,不斷加入新功能,方便後期維護的目錄結構究竟是長什麼樣子的?接下來閏土大叔帶你們一起手摸手學起來。初級前端初始化目錄篇專案伊始,我們肯定是先在terminal終端命令列(以下簡稱terminal)cd進入

Vue.js 專案目錄結構

Vue環境搭建 和其他前端開發一樣,Vue.js的開發環境也需要Node.js、npm和webpack等工具的支援。其中,Node.js 就是執行在服務端的JavaScript,npm是一個包管理工具,用來管理Vue.js專案所依賴的包,而webpack則是前端

linux命令格式,獲取幫助及其目錄結構簡要理解

linux 命令 命令行 我們都知道,一臺計算機要是沒通電,和一堆廢鐵沒什麽區別。那麽,通電開機進入系統後,會進入交互界面,等待用戶操作,人與計算機交互界面有兩種:GUI:圖形用戶接口。如我們平時使用的Windows ,linux的X window,有KDE和GOME. CLI:命令行接口,使用

Vue.js專案中如何定義全域性變數&全域性函式

在專案中,經常有些函式和變數是需要複用,比如說網站伺服器地址,從後臺拿到的:使用者的登入 token, 使用者的地址資訊等,這時候就需要設定一波全域性變數和全域性函式。 目錄           定義全域性變數 定義全

rails專案目錄結構

appName/ app/ 用於存放模型、檢視和控制器的檔案         conifig/ 用於存放配置和資料庫連線的引數 config.ru-Rack 伺服器配置 db/ 用於存放資料庫模式和資料遷移的資訊 doc/ 用於存

GitHub上最熱門的十大Vue.js專案

在過去的一個月裡,Mybridge從將近150個Vue.js開源專案中精選出十個熱門專案,旨在幫助開發者找到自己需要的Vue.js開源專案 上榜開源專案所獲得Star數平均為:268 涉及的領域包括:系統設計,移動元件,影象過濾器,圖表,Nuxtjs,元件,錄音機,表格,谷歌地圖,懸停效果

用vscode開發vue.js專案

一、安裝node.js 首先需要安裝node環境,可以直接到中文官網http://nodejs.cn/下載安裝包。 安裝完成後,可以命令列工具中輸入node -v 和 npm -v,如果能顯示出版本號就安裝成功。   二、安裝vue-cli 安裝好node,我們可以直接

Java專案部署目錄結構與部署方法 打包方法attilax總結 目錄 1.1. Java web專案部署目錄結構 1 2. Springboot專案的部署結構 2 3. Java專案的開發模式下目錄

Java專案部署目錄結構與部署方法 打包方法attilax總結   目錄 1.1. Java web專案部署目錄結構 1 2. Springboot專案的部署結構 2 3. Java專案的開發模式下目錄結構與路徑 2 3.1. 原則上儘可能與jee規範一致比較好 2

Vue.js基礎學習之 搭建vue.js 專案框架。

還是那就俗話,寫部落格的原因就是為記筆記。其實本人也在word 文件上,也記了,但是怕丟。所以寫成部落格,當自己再需要的時候可以檢視。本人主要是c#,asp.net。為了能一人獨立開發一個完整的專案,所以學習一套前端的架構。有錯誤的地方,歡迎大家指出。不說廢話,趕緊利索的寫實

詳解Vuex在Vue.js專案開發中的應用

       Vue.js是國內當下十分流行的一個前端Web框架,具有豐富的組建和庫支援,其中Vuex可以說是最為重要的一個了,但是,在一些專案中,我們甚至都不會用到Vuex,所有Vue開發者有時候就會忽略掉這樣一個重要的組建,今天我就結合自己的學習過程,對Vuex做一個總結

STS下web專案目錄結構講解

前言:之前看書的時候一直沒搞懂STS下web專案的結構是啥樣的,有main,resources,甚至在src下還有個src目錄,就很奇怪,正好導師給了個基於SSM框架的比較初級的web小專案讓我改改,拿到之後就順便研究了一下這個目錄結構。                  

vue源碼解讀-目錄結構

全局 creat 編輯器 eat edit pil 支持 編碼風格 平臺 目錄結構 ├── scripts ------------------------------- 構建相關的文件,一般情況下我們不需要動│ ├── git-hooks --------------

使用Jenkins部署Vue.js專案

Jenkins是非常流行的持續整合工具。使用Jenkins部署伺服器端應用程式是非常方便的,那麼使用Jenkins部署web前端應用程式效果怎麼樣呢,如果可以使用Jenkins部署,那麼就可以直接從版本庫自動拉取,自動構建,相比傳統方式會省去很多麻煩。 一、準備 伺服器上

vue.js 專案打包

vuejs是個前端框架,npm run dev的目的在於前端開發的時候可以實時除錯。所以npm run dev 只是開發時期會用到,在生產環境中我們應該使用nginx,apahce tomcat等應用伺服器部署!現在嘗試把這個專案放到本地的tomcat伺服器上去執行。首先npm run build,然後把di

Eclipse JAVA專案目錄結構 和 匯入 import選單使用

目錄 說明:本文所有測試以java工程為例; 回到頂部 1. Eclipse下的java工程目錄 eclipse的基本工程目錄叫做workspace,每個執行時的eclipse例項只能對應一個workspace,也就是說,workspace是當前工

深入解析Vue.js專案API、Router配置拆分實踐

前後端分離開發方式前端擁有更高的控制權 隨著前端框架技術的飛速發展,Router這個概念也被迅速普及到前端專案中,在早期前後的沒有分離的時期下,並沒有明確的路由概念,前端頁面跳轉大多是通過後端進行請求轉發的,比如在Spring MVC專案中,進行一個頁面跳轉如下(畫紅線部分):

Flask 學習1 專案搭建 目錄結構

一、程式的目錄結構 |ProjectName |-app/ 程式包 | |-__init__.py | |-models.py // 資料庫模型 | |-emails.py // 郵件處理程式 | |-main/ // 程式模組,根據業務區分,不同的模組可以各自擁有自己的單

ASP.NET MVC 入門2、專案目錄結構與核心的DLL

我們新建一個ASP.NET MVC的Web Application後,預設的情況下,專案的目錄結構如下: App_Data :這個目錄跟我們一般的ASP.NET website是一樣的,用於存放資料。 Content :這個目錄是建議用來存放一下資原始檔的。例如CSS、JS、圖片

開啟Scrapy專案之旅之一:認識Scrapy專案目錄結構

建立一個爬蟲專案,框架會自動: 1、生成一個同名專案資料夾 資料夾包括:同名子資料夾+scrapy.cfg檔案 2、同名子資料夾:核心程式碼 scrapy.cfg檔案:配置檔案 3、同名子資料夾: _init_py檔案:專案的初始化檔案,專案的初始化資訊。 items.py檔