1. 程式人生 > >Vue.js系列(一):Vue專案建立詳解

Vue.js系列(一):Vue專案建立詳解

引言

Vue.js作為目前最熱門最具前景的前端框架之一,其提供了一種幫助我們快速構建並開發前端專案的新的思維模式。本文旨在幫助大家認識Vue.js,並詳細介紹使用vue-cli腳手架工具快速的構建Vue專案,以及對專案目錄結構的解釋說明,使大家清晰的瞭解Vue專案的開發流程。

簡介

Vue (讀音 /vjuː/,類似於 view) 是一套用於構建使用者介面的漸進式框架。與其它大型框架不同的是,Vue 被設計為可以自底向上逐層應用。Vue 的核心庫只關注檢視層,不僅易於上手,還便於與第三方庫或既有專案整合。另一方面,當與現代化的工具鏈以及各種支援類庫結合使用時,Vue 也完全能夠為複雜的單頁應用提供驅動。

Vue.js 還提供了 MVVM 資料繫結和一個可組合的元件系統,具有簡單、靈活的 API,其目標是通過儘可能簡單的 API 實現響應式的資料繫結和可組合的檢視元件。

Vue.js 的主要特點

Vue.js 是一個優秀的前端介面開發 JavaScript 庫,它之所以非常火,是因為有眾多突出的特點,其中主要的特點有以下幾個。

1) 輕量級的框架

Vue.js 能夠自動追蹤依賴的模板表示式和計算屬性,提供 MVVM 資料繫結和一個可組合的元件系統,具有簡單、靈活的 API,使讀者更加容易理解,能夠更快上手。

2) 雙向資料繫結

宣告式渲染是資料雙向繫結的主要體現,同樣也是 Vue.js 的核心,它允許採用簡潔的模板語法將資料宣告式渲染整合進 DOM。

3) 指令

Vue.js 與頁面進行互動,主要就是通過內建指令來完成的,指令的作用是當其表示式的值改變時相應地將某些行為應用到 DOM 上。

4) 元件化

元件(Component)是 Vue.js 最強大的功能之一。元件可以擴充套件 HTML 元素,封裝可重用的程式碼。

在 Vue 中,父子元件通過 props 傳遞通訊,從父向子單向傳遞。子元件與父元件通訊,通過觸發事件通知父元件改變資料。這樣就形成了一個基本的父子通訊模式。

在開發中元件和 HTML、JavaScript 等有非常緊密的關係時,可以根據實際的需要自定義元件,使開發變得更加便利,可大量減少程式碼編寫量。

元件還支援熱過載(hotreload)。當我們做了修改時,不會重新整理頁面,只是對元件本身進行立刻過載,不會影響整個應用當前的狀態。CSS 也支援熱過載。

5) 客戶端路由

Vue-router 是 Vue.js 官方的路由外掛,與 Vue.js 深度整合,用於構建單頁面應用。Vue 單頁面應用是基於路由和元件的,路由用於設定訪問路徑,並將路徑和元件對映起來,傳統的頁面是通過超連結實現頁面的切換和跳轉的。

6) 狀態管理

狀態管理實際就是一個單向的資料流,State 驅動 View 的渲染,而使用者對 View 進行操作產生 Action,使 State 產生變化,從而使 View 重新渲染,形成一個單獨的元件。

SPA和MPA對比

MPA

傳統的專案大多使用多頁應用結構(MultiPage Application, MPA),需要切換內容的時候我們往往會進行單個html檔案的跳轉,這個時候受網路、效能影響,瀏覽器會出現不定時間的空白介面,使用者體驗不好。

SPA       

單頁面應用SPA應用(single page application)就是使用者通過某些操作更改位址列url之後,動態的進行不同模板內容的無重新整理切換,使用者體驗好。

Vue中會使用官方提供的vue-router外掛來使用單頁面,原理就是通過檢測位址列變化後將對應的路由元件進行切換(解除安裝和安裝)。

兩者對比

SPA vs MPA單頁面應用(single page application, SPA)多頁面應用(MultiPage Application, MPA)
組成 一個外殼頁面和多個頁面片段組成 多個完整頁面構成
資源共享(css、js) 共用只需要在外殼部分載入 不共用,每個頁面都需要載入
重新整理方式 頁面區域性重新整理或更改 整頁重新整理
url模式

a.com/#/pagone

a.com/#/pagtow

a.com/#/pagone.html

a.com/#/pagtwo.html

使用者體驗 頁面片段切換快,使用者體驗好 頁面切換載入緩慢,流暢度不夠使用者體驗較差
轉場動畫 容易實現 無法實現
資料傳遞 容易 依賴url傳參、或者cookie、localStorage等
搜尋引擎優化(SEO) 需要單獨方案、實現較為困難、不利於SEO檢索 可以利用伺服器端渲染(ssr)優化 實現方法簡易
適用範圍 高要求的體驗度,追求介面流暢的應用 適用於追求高度支援搜尋引擎的應用
開發成本 較高,常需藉助專業的框架 較低,但頁面重複程式碼多
維護成本 相對容易 相對複雜

安裝工具

第一步:

安裝node.js,具體可以參考部落格Node.js安裝詳細步驟教程(Windows版)。

第二步:

安裝webpack,具體參考部落格Webpack安裝配置及打包詳細過程。

第三步:

安裝vue-cli,輸入如下命令,全域性安裝vue-cli,其中cnpm是淘寶映象,安裝速度快,i是install的縮寫,g是global的縮寫。

cnpm i vue-cli -g

vue-cli建立過程

第一步:

安裝完成後,執行CMD,並切換到需要建立Vue專案的目錄,輸入如下命令開始建立。

vue init webpack vue-test //注:其中專案名稱必須全部小寫,否則會報錯

第二步:

接著開始進行專案選項設定,具體如下:

  • Project name---專案名稱,直接回車;
  • Project description---專案描述,輸入“Vue專案測試”,點選回車;
  • Author---作者,輸入“aizai846”,點選回車;
  • Runtime + Compiler: recommended for most users和Runtime-only: about 6KB lighter min+gzip, but templates (or any Vue-specificHTML) are ONLY allowed in .vue files - render functions are required elsewhere兩個選項---第一個是執行加編譯,推薦使用,第二個僅執行時。通過鍵盤上下按鈕選擇後,點選回車;
  • Install vue-router?<Y/n>---是否安裝vue路由外掛,輸入“Y”,點選回車;
  • Use ESLint to lint your code? <Y/n>---是否使用ESLint管理程式碼,ESLint是個程式碼風格管理工具,是用來統一程式碼風格的,一般專案中都會使用,但作為初學者,建議不進行安裝,輸入“n”,點選回車;
  • Set up unit tests<Y/n>---是否安裝單元測試,這裡輸入“n”,點選回車;
  • Setup e2e tests with Nightwatch?<Y/n>?---是否安裝e2e測試,這裡輸入“n”,點選回車;
  • Should we run “npm install” for you after the project has been created?<recommended><use arrow keys>Yes, use NPM   Yes, use Yarn    No, I will handle that myself---三個選項,這裡我們選擇第三個,因為通過npm install安裝vue專案依賴庫,非常的慢,我們可以在專案建立後,自己通過“cnpm install”安裝。

以上就是我們建立專案的整個過程,如下圖所示。

 第三步:

由於在第二步最後一個項,我們選擇了自己安裝專案包依賴,所以在這裡輸入如下命令,完成專案包依賴的安裝。

cd F:\JsCodeProject\vue-test//切換到專案目錄

cnpm i //其中,cnpm是通過淘寶映象安裝,速度非常的快

第四步:

輸入如下命令,測試專案是否能正常執行。

npm run dev

  成功執行後,在shell命令框中,輸出如下資訊。

 此時,在瀏覽器中,輸入上邊的網址,可以訪問我們新建立的vue專案,如下圖所示

vue目錄介紹

通過VSCode開啟我們新建的專案,具體目錄結構如下圖所示。

在package.json檔案中,我們可以到開發和生產環境的配置檔案入口。

 "scripts": {
    "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
    "start": "npm run dev",
    "build": "node build/build.js"
  }

  其中,開發環境的入口檔案為“webpack.dev.conf.js”;生產環境的入口檔案為“build.js”,他們都在build檔案下,如下圖所示。

 其中部分檔案說明如下:

  • build.js---生產環境的入口檔案,為構建打包檔案,會將原始碼進行構建(編譯、壓縮等)後打包;
  • utils.js---一個被使用頻率的檔案,這個檔案包含了三個工具函式:生成靜態資源的路徑、生成 ExtractTextPlugin物件或loader字串、生成 style-loader的配置;
  • webpack.base.conf.js---在webpack.dev.conf.js中出現webpack.base.conf.js,這個檔案是開發環境和生產環境,甚至測試環境,這些環境的公共webpack配置;
  • webpack.dev.conf.js---開發環境中webpack的配置入口。
  • webpack.prod.conf.js---為生產環境中webpack的配置入口。同時,它也依賴於前面提到的webpack.base.conf.js、utils.js和config/index.js;

打包部署

專案開發的檔案放到src目錄下,在專案開發完成之後,使用 如下命令來打包專案。

npm run build

 打包完成後會生成dist資料夾,如圖所示,專案上線時,直接將dist資料夾放到伺服器即可。

總結

本文通過描述Vue專案的建立過程,及Vue目錄結構的解釋說明,可以使我們更加清晰的認識Vue專案的開發流程,對於初學的童鞋,能起到很好引路作用,專案裡面還有很多沒有解釋到位的地方,童鞋可以新增關注,我們將在後續的博文中詳細講解,文中若有不足之處,還望海涵,同時,在建立中遇到問題,可留言交