三、創建腳手架
一、環境準備
1、安裝node.js
- **下載地址:**https://nodejs.org/zh-cn/
- 界面展示
2、檢查node.js版本
-
查看版本的兩種方式
node -v
node -version
- 出現版本號則說明安裝成功(最新的以官網為準)
3、為了提高我們的效率,可以使用淘寶的鏡像源
- 輸入:
npm install -g cnpm --registry=https://registry.npm.taobao.org
即可安裝npm鏡像源 - 以后再用到
npm
的地方直接用cnpm
來代替就好了,因為沒有鏡像源的話,安裝速度比較慢
- 檢查是否安裝成功:
cnpm -v
二、搭建vue
環境
1、全局安裝vue-cli
- 這里注意:安裝
vue-cli
對node.js
的版本是有要求的
-
裝的兩種方式:輸入
cmd
命令npm install -g @vue/cli
這個是從國外下載的比較慢cnpm install -g @vue/cli
這個是從鏡像源下載
-
查看安裝的版本(顯示版本號說明安裝成功)
vue --version
- 如果你原來有版本或者版本比較低,可以升級
npm update -g @vue/cli
yarn global upgrade --latest @vue/cli
三、創建vue項目
1、用cmd命令創建項
1.1 創建文件
- 以管理員身份打開命令行界面,進入任意一個想要創建項目的文件夾
- 輸入:
vue create vue01
1.2選擇配置信息
- 通過上下方向鍵選擇對應配置,然后回車
1.3 創建成功
- Successfully created project vue_bailuo_02出現這個說明創建成功
1.4運行
- cd到項目文件夾下面
cd vue_bailuo_02
- 輸入代碼運行文件
npm run serve
1.5 啟動
- 在瀏覽器輸入對應的網址就可以看到界面啦
- http://localhost:8080/
1.6 停止服務
- 兩下Ctrl+C 或者Ctrl+C一下然后Y
4、腳手架解構分析
4.1 最開始根目錄下的文件
4.1.1 .gitignore 文件
- 是git 的忽略文件
- 哪些文件或文件夾不想接受git的管理,你在這配好,關掉,結束
4.1.2 babel.config.js 文件(重要)
- 重要歸重要,不需要我們在里面寫東西;
babel
控制文件你得告訴配置一下怎么轉換,采用什么樣的標準
- 直接用官方寫好的,但是有些人比較好奇,可以參考babel中文官網文檔
4.1.3 package.json
- 只要你打開的工程是一個符合npm規范的,那么一定會有包的說明數(
package.json
) - name:名字
- version:版本
- dependencies:采用的依賴
"core-js": "^3.8.3","vue": "^2.6.14"
:里面用了哪些庫
常用的一些命令
- 我們執行
npm run serve
其實是執行了vue-cli-service serve
"serve": "vue-cli-service serve":是屬于我們在開發的過程中你去使用這個命令讓人家幫你配置好一個服務器,幫你把東西都弄好了
"build": "vue-cli-service build":屬于是我的代碼寫完了,我的功能開發完了,人家后端找我要東西;你得給人家的是.html、.css、.js,所以build是構建的意思;所有的功能都寫完了最終想把整個工程變成一個瀏覽器能夠認識的東西,那你執行這個(也就是最后一次編譯)
"lint": "vue-cli-service lint":幾乎不用。如果你執行了這個lint那就是把整個代碼里面寫過的js、vue文件全都進行一次語法檢查,告訴你哪寫的不對,哪寫的不太好。因為插件里面有更好的檢查;語法檢查肯定要檢查,但是要有個度。所以不太用
4.1.4 package-lock.json
- 這個是
包版本控制文件
:你用到了一個包,這里記錄著包的版本信息(version
),記錄著下載地址信息(resolved
) - 等你以后再安裝這個東西的時候它能保證最快的速度給你安裝到指定版本,如果沒有這個
lock
文件版本就鎖不住了:如果你又下載一個文件的時候很有可能幫你下載一個8.x.xx,一般我們這個文件就留著
4.1.5 READMI.md
- 對整個工程進行一個說明、描述
4.2 src
-
執行了
npm run serve
之后,它首先是找到哪個文件開始運行,然后一點一點摸排清楚里面有倆個文件夾和倆個文件
4.2.1 App.Vue文件
- 看一下
App
的結構(<template></template>
):
<template><div id="app"><img alt="Vue logo" src="./assets/logo.png"><HelloWorld msg="Welcome to Your Vue.js App"/></div>
</template>
<img alt="Vue logo" src="./assets/logo.png">:引入外部的圖片(當前目錄下assets的logo.png文件)<HelloWorld msg="Welcome to Your Vue.js App"/>:引入一個HelloWorld
<script>
import HelloWorld from './components/HelloWorld.vue'export default {name: 'App',components: {HelloWorld}
}
</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>
4.2.2 main.js文件
src
中有個特別重要的人,叫main.js
,重要到當你執行完npm run serve
命令之后,直接去運行main.js
4.2.3 assets文件夾
- 這個文件夾名稱經常在前端的項目里面出現,這個文件夾一般放靜態資源;一般放圖片視頻等
4.2.4 components文件夾
- 叫組件們;所有程序員寫得組件都往里面放,唯獨
App.vue
- 從npm run serve開始
npm run serve -> main.js -> App.vue -> 組件們 -放到了-> index.html
4.3 public文件夾
4.3.1 favicon.ico
網站得頁簽圖標
4.3.2 index.html(非常重要)
它是我們整個應用的界面
<!DOCTYPE html>
<html lang=""><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"><link rel="icon" href="<%= BASE_URL %>favicon.ico"><title><%= htmlWebpackPlugin.options.title %></title></head><body><noscript><strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><!-- built files will be auto injected --></body>
</html>
<meta http-equiv="X-UA-Compatible" content="IE=edge">:針對IE瀏覽器的特殊配置,含義是讓這個IE瀏覽器以最高的渲染級別渲染頁面<meta name="viewport" content="width=device-width,initial-scale=1.0">:開啟移動端的理想視口<link rel="icon" href="<%= BASE_URL %>favicon.ico">:你的項目開發完了,部署到服務器上的時候容易產生一個奇奇怪怪的路徑錯誤,腳手架是這么說的:你在這個html里面如果想引入文件,你別'./','../','/'都不要寫了就寫<%= BASE_URL %>
<%= BASE_URL %>:指的就是public所在的路徑,這個就代表了以前的'./'了,底層是有處理的<title><%= htmlWebpackPlugin.options.title %></title>:配置網頁標題
<%= htmlWebpackPlugin.options.title %>:就是默默來到package.json當中,去找name。這是webpack里面的一個插件完成的功能,你只要這么寫那就會去package.json中去找<noscript></noscript>:如果你的瀏覽器不支持js那么'<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>'就會出現到頁面上
其他都可以刪,唯獨容器的
<div>
不能刪
4.4 vue.config.js
使用 vue-cli 3.x 以上的腳手架創建的 vue 項目不再有 build文件夾,若需要進行相關配置,需在項目目錄下新建文件 vue.config.js
4.4.1 常用的配置
// 后端服務器地址
let url = 'http://localhost:8888'
module.exports = {lintOnSave: false, //設置是否啟動語法檢查publicPath: './', // 【必要】靜態文件使用相對路徑outputDir: "./dist", //打包后的文件夾名字及路徑devServer: { // 開發環境跨域情況的代理配置proxy: {// 【必要】訪問自己搭建的后端服務器'/api': {target: url,changOrigin: true,ws: true,secure: false,pathRewrite: {'^/api': '/'}},// 【范例】訪問百度地圖的API// vue文件中使用方法 this.$http.get("/baiduMapAPI/place/v2/search"// 最終實際訪問的接口為 http://api.map.baidu.com/place/v2/search// 遇到以/baiduMapAPI開頭的接口便使用此代理'/baiduMapAPI': {// 實際訪問的服務器地址target: 'http://api.map.baidu.com',//開啟代理:在本地會創建一個虛擬服務端,然后發送請求的數據,并同時接收請求的數據,這樣客戶端和服務端進行數據的交互就不會有跨域問題changOrigin: true,ws: true, // 是否啟用websocketssecure: false, // 使用的是http協議則設置為false,https協議則設置為true// 將接口中的/baiduMapAPI去掉(必要)pathRewrite: {'^/baiduMapAPI': ''}},}}
}