學習目標
- 認識前端開發(fā)框架
- 了解Vue的核心特點
- 能安裝和配置Node.js平臺
- 能安裝和配置Vue.CLI工具
- 能創(chuàng)建基礎的Vue3項目
- 能使用npm命令啟動項目
任務描述
學習Vue框架的基礎知識,安裝配置Vue開發(fā)運行的環(huán)境,創(chuàng)建并運行第一個Vue框架項目。
相關知識
- 前端框架基礎
- Vue主要特點
- Node.js平臺
- Vue.CLI腳手架工具
- Vue3項目創(chuàng)建
- npm命令
一、前端開發(fā)框架知識
1、前端開發(fā)框架介紹
前端框架(front-end framework)是一種為了簡化和加速前端開發(fā)而創(chuàng)建的工具、庫或軟件系統(tǒng)。它提供了一套結(jié)構(gòu)、規(guī)范和工具,用于組織、管理和展示用戶界面(UI)元素,并協(xié)助開發(fā)者構(gòu)建交互性高、可維護且具有良好用戶體驗的網(wǎng)頁或應用程序。
前端框架通常包含以下主要組成部分:
(1)模板引擎(Template Engine)
用于定義和渲染用戶界面的布局和內(nèi)容。它可以將數(shù)據(jù)動態(tài)地綁定到界面上,實現(xiàn)數(shù)據(jù)與視圖的同步更新。
(2)組件系統(tǒng)(Component System)
提供了一種組織、復用和分割用戶界面的方法。通過將界面拆分成獨立的組件,可以更好地管理代碼、提高可維護性和重用性。
(3)路由管理(Routing)
用于管理應用程序中不同頁面之間的導航和狀態(tài)。它允許開發(fā)者定義頁面路徑、參數(shù)和導航邏輯,以便用戶能夠在應用程序中導航和訪問特定的頁面。
(4)狀態(tài)管理(State Management)
用于管理應用程序的數(shù)據(jù)狀態(tài)。它提供了一種集中式的方法來管理數(shù)據(jù)和狀態(tài)的變化,使不同的組件能夠共享和響應共享狀態(tài)的更改。
(5)構(gòu)建工具(Build Tools)
用于自動化構(gòu)建、打包和優(yōu)化前端資源,例如編譯和壓縮代碼、處理靜態(tài)資源、生成生產(chǎn)就緒的文件等。
(6)響應式設計(Responsive Design)
用于創(chuàng)建適應不同設備和屏幕尺寸的用戶界面。它自動調(diào)整和布局頁面,以適應不同的瀏覽器、平臺和設備。
2、常用前端開發(fā)框架
(1)Vue

Vue (發(fā)音為 /vju?/,類似 view) 是一款用于構(gòu)建用戶界面的 JavaScript 框架。它基于標準 HTML、CSS 和 JavaScript 構(gòu)建,并提供了一套聲明式的、組件化的編程模型,幫助你高效地開發(fā)用戶界面。無論是簡單還是復雜的界面,Vue 都可以勝任。( 官網(wǎng)鏈接: https://cn.vuejs.org/ )
(2)React

React是用于構(gòu)建用戶界面的JavaScript庫,起源于Facebook的內(nèi)部項目,該公司對市場上所有 JavaScript MVC框架都不滿意,決定自行開發(fā)一套,用于架設Instagram的網(wǎng)站。于2013年5月開源。
React主要用于構(gòu)建UI??梢栽赗eact里傳遞多種類型的參數(shù),如聲明代碼,幫助開發(fā)者渲染出UI、也可以是靜態(tài)的HTML DOM元素、也可以傳遞動態(tài)變量、甚至是可交互的應用組件。( 官網(wǎng)鏈接: https://react.dev/ )
(3)Angular

AngularJS誕生于2009年,由Misko Hevery 等人創(chuàng)建,是一款構(gòu)建用戶界面的前端框架,后為Google所收購。AngularJS是一個應用設計框架與開發(fā)平臺,用于創(chuàng)建高效、復雜、精致的單頁面應用,通過新的屬性和表達式擴展了 HTML,實現(xiàn)一套框架,多種平臺,移動端和桌面端。AngularJS有著諸多特性,最為核心的是:MVVM、模塊化、自動化雙向數(shù)據(jù)綁定、語義化標簽、依賴注入等等。
Angular是AngularJS的重寫,Angular2以后官方命名為Angular,2.0以前版本稱為AngularJS。AngularJS是用JavaScrip編寫,而Angular采用TypeScript語言編寫,是ECMAScript 6的超集。( 官網(wǎng)鏈接: https://angular.cn/ )
3、MVVM模式
MVVM(Model-View-ViewModel)是一種軟件架構(gòu)設計模式,它是一種簡化用戶界面的事件驅(qū)動編程方式。如圖15-2-4 MVVM模式結(jié)構(gòu)示意圖所示。其中:
- Model為數(shù)據(jù)層 —— 指各種業(yè)務邏輯處理和數(shù)據(jù)操控。
- View為視圖層 ——指前端用戶界面。主要由HTML和CSS構(gòu)成。
- ViewModel為視圖數(shù)據(jù)層 —— 是數(shù)據(jù)層與視圖層的橋梁,實現(xiàn)了數(shù)據(jù)與視圖的分離。

【注】POJO(Plain Old JavaScript Object)是由一組鍵值對組成的數(shù)據(jù)結(jié)構(gòu),沒有任何特殊的方法或函數(shù)
在MVVM架構(gòu)下,View 和Model 之間并沒有直接的聯(lián)系,而是通過ViewModel進行交互,View數(shù)據(jù)的變化會同步到ViewModel上,ViewModel對數(shù)據(jù)的操作也會立即反應到View 上。ViewModel發(fā)起異步請求通知Model對數(shù)據(jù)進行處理,Model將數(shù)據(jù)的處理結(jié)果回傳給ViewModel。
二、Vue框架
1、Vue框架介紹
以下為Vue官網(wǎng)的介紹:
Vue 是一個框架,也是一個生態(tài)。其功能覆蓋了大部分前端開發(fā)常見的需求。但 Web 世界是十分多樣化的,不同的開發(fā)者在 Web 上構(gòu)建的東西可能在形式和規(guī)模上會有很大的不同??紤]到這一點,Vue 的設計非常注重靈活性和“可以被逐步集成”這個特點。根據(jù)你的需求場景,你可以用不同的方式使用 Vue:
- 無需構(gòu)建步驟,漸進式增強靜態(tài)的 HTML
- 在任何頁面中作為 Web Components 嵌入
- 單頁應用 (SPA)
- 全棧 / 服務端渲染 (SSR)
- Jamstack / 靜態(tài)站點生成 (SSG)
- 開發(fā)桌面端、移動端、WebGL,甚至是命令行終端中的界面
簡單來說,我們可以根據(jù)項目的實際需要來使用Vue框架:
- 若我們的項目很簡單,頁面的數(shù)量也很少,此時可以只引入Vue.js直接使用(通過CDN引入或本地引入均可)
- 若我們的項目比較復雜,需要使用到Vue框架的更多功能,比如組件、路由、狀態(tài)管理等,就可以使用Vue CLI 等工具來創(chuàng)建一個功能更為豐富的Vue項目
具體來說,我們可以通過以下三種方法來使用Vue框架:
- 通過CDN引入使用Vue.js
- 使用本地保存的Vue.js文件
- 使用Vue CLI創(chuàng)建Vue項目
接下來,我們通過三個實例來一一了解。
2、通過CDN使用Vue.js
在本方法中,我們創(chuàng)建一個demo1.html文件,然后通過CDN引入的方法來使用Vue.js,并初步了解Vue模板語法的使用方法。
(1)創(chuàng)建demo1.html文件
首先我們創(chuàng)建一個常規(guī)格式的demo1.html文件,在頁面中顯示一段文字,代碼如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CDN引入Vue.js實例</title>
</head>
<body>
<h1>Hello Vue -- CDN</h1>
</body>
</html>
使用網(wǎng)頁瀏覽器預覽的結(jié)果如圖15-2-5 常規(guī)html頁面預覽圖所示:

(2)通過CDN引入Vue.js
在頁面的body中,使用script標簽,直接通過CDN來引入Vue。
【注】CDN的全稱是 Content Delivery Network,即內(nèi)容分發(fā)網(wǎng)絡。是構(gòu)建在網(wǎng)絡之上的內(nèi)容分發(fā)網(wǎng)絡,依靠部署在各地的邊緣服務器,通過中心平臺的負載均衡、內(nèi)容分發(fā)、調(diào)度等功能模塊,使用戶就近獲取所需內(nèi)容,降低網(wǎng)絡擁塞,提高用戶訪問響應速度和命中率。CDN的關鍵技術主要有內(nèi)容存儲和分發(fā)技術。
<body>
<h1>Hello Vue -- CDN</h1>
<!--直接通過CDN來引入vue -->
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
</body>
看,就是這么簡單,現(xiàn)在我們已經(jīng)可以使用Vue為我們提供的功能了!
(3)使用Vue將變量顯示到頁面
在引入了Vue之后,我們可以使用JavaScript代碼定義變量,并且很方便地顯示在頁面的DOM上。
接下來,我們將使用Vue框架語法來增加顯示一行新的內(nèi)容:
- 第1步:在body中新增一個div,定義id為app,在div中新增一個h1標簽,標簽中寫入{{msg}}
- 第2步:創(chuàng)建一個Vue實例,并且定義一個字符串變量msg,值為“這是CDN引入Vue.js實例”
修改后的代碼如下:
<body>
<h1>Hello Vue -- CDN</h1>
<!-- 第1步 -->
<div id="app">
<h1>{{msg}}</h1>
</div>
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<!-- 第2步 -->
<script>
const { createApp } = Vue;
createApp({
data(){
return {
msg: "這是CDN引入Vue.js實例"
}
}
}).mount('#app')
</script>
</body>
上面代碼的寫法,可能大家會有些陌生,不過沒有關系,讓我們先來看看修改后頁面的顯示內(nèi)容,如圖15-2-5 引入Vue后頁面預覽圖所示,再來進行解釋。

刷新瀏覽器后,我們看見頁面中增加了一行內(nèi)容,顯示的正是我們定義的msg變量所對應的值。說明我們已經(jīng)成功地使用Vue動態(tài)顯示頁面內(nèi)容??蛇@又是如何實現(xiàn)的呢?
接下來我們來逐步介紹頁面中使用Vue的方法:
1、body標簽布局部分:
(1)在body中增加了一個div標簽,并且定義其id為app
(2)在div中,增加了一個h1標簽,在標簽中使用"Mustache語法"(雙大括號)綁定msg變量
2、script標簽腳本部分:
(1)使用ES6的解構(gòu)賦值語法 " const { createApp } = Vue " 從Vue模塊中導入createApp函數(shù),并將其賦值給一個常量createApp
(2)使用createApp函數(shù)創(chuàng)建一個Vue實例,并且使用 " mount('#app') " 方法將該實例掛載到布局中id為app的DOM元素上
(3)在createApp函數(shù)創(chuàng)建的Vue實例中包含了data選項的對象,data返回了一個包含鍵值對的對象,其鍵為msg,值為"這是CDN引入Vue.js實例"
3、當Vue實例被創(chuàng)建后,它將 data 中的所有屬性加入到Vue的響應式系統(tǒng)中,這些屬性的值被定義或者發(fā)生改變時,視圖層(即布局內(nèi)容)將產(chǎn)生“響應”,自動匹配更新為新的值。
【注】Mustache語法(又稱大胡子語法,由兩對大括號標記)是一套logic-less(輕邏輯)的模板解析引擎。它可以用來處理 HTML 、配置文件、源代碼等任何文件。它把模板中的標簽展開成給定的數(shù)據(jù)映射或者對象中的屬性值??梢詰迷贘avaScript、PHP、Perl等多種語言中
2、使用本地保存的Vue.js文件
在某些特定的情況下,項目可能要求我們不使用CDN,而是將Vue.js作為項目本地文件直接引用。那么我們就可以將此js文件下載到本地來使用。
具體實現(xiàn)步驟如下:
(1)打開Vue.js文件
使用瀏覽器打開CDN中指向的js文件地址:

(2)下載Vue.js文件
使用瀏覽器將文件保存為本地的vue.global.js文件

(3)使用Vue.js文件
在html文件中引入本地vue.global.js文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>引入本地Vue.js文件實例</title>
</head>
<body>
<h1>Hello Vue -- CDN</h1>
<div id="app">
<h1>{{msg}}</h1>
</div>
<!--引入本地vue.global.js文件 -->
<script src="./vue.global.js"></script>
<script>
const { createApp } = Vue;
createApp({
data(){
return {
msg: "這是引入本地vue.global.js文件實例"
}
}
}).mount('#app')
</script>
</body>
</html>
(4)訪問頁面
使用瀏覽器打開demo2.html文件,確認引用本地Vue.js文件成功。

3、使用Vue CLI創(chuàng)建Vue項目
之前的兩種方式適用于頁面較少的項目,可以只引入Vue.js直接使用。但通常情況下,一個完整的前端項目會涉及到組件、路由、狀態(tài)管理等各方面的需求,這時,我們就可以使用Vue CLI來創(chuàng)建一個功能更為豐富的Vue項目。
在創(chuàng)建項目之前,我們需要先安裝項目創(chuàng)建和運行所需的Node.js環(huán)境與Vue CLI。
(1)Node.js簡介
Node.js發(fā)布于2009年5月,由Ryan Dahl開發(fā),是一個基于Chrome V8引擎的JavaScript運行時環(huán)境,使得JavaScript可以在服務器端運行。它提供了一組用于開發(fā)Web服務器和其他網(wǎng)絡應用的工具和庫,它讓JavaScript成為與PHP、Python、Perl、Ruby等服務端語言平起平坐的腳本語言。
Node.js的主要特點包括:
- 非阻塞I/O模型:Node.js使用事件驅(qū)動、非阻塞I/O模型,使得程序可以并發(fā)處理大量的請求,而不會因為阻塞I/O操作而導致性能下降。
- 輕量高效:由于使用了V8引擎,Node.js具有快速的代碼執(zhí)行速度和低內(nèi)存消耗,適合處理高并發(fā)的請求。
- 單線程:Node.js使用單線程的事件循環(huán)機制,減少了線程切換和上下文切換的開銷,使得并發(fā)性能更高。
- 跨平臺:Node.js可以在多個操作系統(tǒng)上運行,包括Windows、Mac和Linux等。
(2)npm簡介
Node.js附帶了一個強大的包管理工具npm(Node Package Manager)包管理器,是一個用于安裝、管理和分享JavaScript代碼的工具。通過npm,開發(fā)者可以輕松地安裝和管理第三方模塊、庫和工具,以及發(fā)布自己的包供他人使用。
npm具有以下核心功能和特點:
- 包管理:npm允許你安裝、升級、刪除和管理項目依賴的模塊和包。你可以在項目根目錄下的 package.json 文件中定義項目依賴,并通過運行 npm install 命令來安裝所有依賴。
- 包發(fā)布:你可以使用npm將自己開發(fā)的模塊和庫發(fā)布到npm,供其他開發(fā)者使用。通過運行 npm publish 命令,你可以發(fā)布自己的包,并將其在npm上注冊。
- 版本管理:npm使用語義化版本(Semantic Versioning)來管理模塊和包的版本。每個發(fā)布的包都有一個版本號,你可以指定依賴模塊的版本范圍,以確保兼容性和可靠性。
- 命令行工具:npm提供了一個命令行界面,用于執(zhí)行各種操作,如安裝、發(fā)布、更新、搜索、測試等。你可以使用 npm install 安裝依賴, npm run 運行自定義腳本, npm search 搜索可用的模塊等。
- 全局安裝:除了在項目中使用本地安裝的模塊,npm還支持全局安裝模塊,以供系統(tǒng)中的所有項目使用。你可以通過 npm install -g 命令將模塊全局安裝。
無論是在個人項目還是團隊開發(fā)中,npm都是JavaScript開發(fā)中常用的工具之一。它為開發(fā)者提供了便捷的代碼共享和管理機制,有利于構(gòu)建高質(zhì)量的JavaScript應用程序。
(3)Vue CLI簡介
Vue CLI (Vue Command-Line Interface) 是一個官方提供的用于快速搭建和管理Vue項目的命令行工具。它提供了一套交互式的腳手架,可幫助開發(fā)者快速搭建Vue項目的基礎結(jié)構(gòu),并提供了大量可選的插件和工具,簡化了項目配置和開發(fā)流程。
使用Vue CLI可以獲得以下好處:
- 快速創(chuàng)建項目:Vue CLI提供了一個交互式的命令行界面,可幫助你快速創(chuàng)建一個基于Vue.js的項目。它會為你生成項目的基本目錄結(jié)構(gòu)和配置文件,并自動安裝所需的依賴。
- 管理插件和工具:Vue CLI支持使用插件和工具來擴展項目的功能。你可以通過簡單的命令行操作來添加、升級或移除插件,以滿足項目的需求。
- 配置管理:Vue CLI提供了一個易于使用的配置文件,用于管理項目的構(gòu)建和開發(fā)配置。你可以在配置文件中定制構(gòu)建過程、配置開發(fā)服務器、添加Babel、ESLint、TypeScript等支持。
- 內(nèi)置指令:Vue CLI提供了方便的指令來運行開發(fā)服務器、構(gòu)建生產(chǎn)版本、運行測試等常用任務。它們都經(jīng)過優(yōu)化和自動化的配置,可使你更專注于開發(fā)而不是繁瑣的配置過程。
要使用Vue CLI,我們首先需要安裝Node.js和npm,然后使用npm安裝Vue CLI。安裝完成后,我們就可以通過運行 vue create 命令來創(chuàng)建我們的Vue項目。
4、安裝Node.js環(huán)境
在Node.js官網(wǎng)(https://nodejs.org/)下載對應版本的安裝包:

下載完成后,雙擊安裝包進行安裝:







(5)確認安裝結(jié)果
打開Windows命令行工具,輸入查看node版本的命令并執(zhí)行:
node -v

輸入查看npm版本的命令并執(zhí)行:
npm -v

5、安裝Vue CLI
在成功安裝了Node.js 與npm工具后,就可以使用npm命令安裝Vue CLI:
npm install -g @vue/cli
npm的默認配置是使用官方的包存儲服務器,官方服務器位于全球各地,并且通常在國外。可能會出現(xiàn)訪問速度較慢的情況。為了解決這個問題,國內(nèi)的一些廠商提供了npm的鏡像服務器,例如淘寶的npm鏡像(cnpm)。這些鏡像服務器基本上是將npm服務器的內(nèi)容復制到國內(nèi)的服務器上,并提供更快的訪問速度。通過將npm的下載源切換到國內(nèi)鏡像,可以顯著加快包的下載速度。
另一方面,盡管cnpm在國內(nèi)使用具有優(yōu)勢,但由于淘寶鏡像數(shù)據(jù)同步和穩(wěn)定性的原因,有時可能會導致一些包的版本不一致或者不完全可用。因此,在實際開發(fā)中,如果我們遇到任何問題或沖突,建議切換回使用npm或采取適當?shù)慕鉀Q方法。
以下為使用國內(nèi)鏡像的安裝方式:
首先,使用npm安裝國內(nèi)鏡像cnpm:
npm install -g cnpm --registry=https://registry.npm.taobao.org

其次,將npm下載源切換為cnpm的源:
npm config set registry https://registry.npm.taobao.org

然后,我們就可以使用cnpm命令,使用國內(nèi)鏡像來安裝Vue CLI了:
cnpm install -g @vue/cli

安裝成功后,輸入查看Vue CLI 版本的命令并執(zhí)行:
vue/cli -V

6、創(chuàng)建Vue項目
在完成環(huán)境和工具的安裝之后,我們現(xiàn)在可以開始創(chuàng)建我們自己的Vue項目了!
(1)執(zhí)行創(chuàng)建項目命令
輸入創(chuàng)建項目命令,創(chuàng)建一個名為 my_test_vue 的項目:
vue create my_test_vue
(2)選擇項目預設選項
在選擇項目預設頁面中,我們可以根據(jù)自己的需要逐步設置:

使用鍵盤的上下鍵切換選項,上圖中的選項分別為:
- 前面幾行選項(myDemo, myTest, 0530mmm等)為之前保存的自定義配置選項,可直接選擇使用
- Defalue([Vue 3] babel, eslint):為系統(tǒng)預設的Vue3基礎配置選項
- Defalue([Vue 2] babel, eslint):為系統(tǒng)預設的Vue2基礎配置選項
- Manually select features:為手動選擇配置
我們選擇“Defalue([Vue 3] babel, eslint)”,按回車鍵確認,創(chuàng)建一個系統(tǒng)預設的Vue3基礎配置項目:

(3)啟動項目
進入新創(chuàng)建的項目目錄:
cd my_test_vue

使用npm命令啟動項目:

使用瀏覽器訪問項目:
根據(jù)項目啟動成功界面中的提示,我們可以使用瀏覽器訪問創(chuàng)建的my_test_vue項目,以下兩種訪問方式均可:
- 本地訪問方式:訪問 http://localhost:8080/ 地址
- 網(wǎng)絡訪問方式:訪問 http://192.168.3.93:8080/ 地址

(4)注意事項
(1)Windows命令行工具默認在C盤用戶目錄下執(zhí)行,所以項目也將自動創(chuàng)建在該目錄下。實際開發(fā)中,需要選擇在合適的目錄下執(zhí)行創(chuàng)建項目命令。
(2)我們創(chuàng)建的項目名稱不能有大寫字母,否則會報錯如下:
