vue項目環(huán)境搭建?啟動?移植操作示例及目錄結(jié)構(gòu)分析
項目搭建
下載node
官網(wǎng)下載安裝包,傻瓜式安裝:https://nodejs.org/zh-cn/
安裝cnpm,用淘寶源:
npm install -g cnpm --registry=https://registry.npm.taobao.org
檢測是否安裝成功:cnpm -version
安裝腳手架:
cnpm install -g @vue/cli
清空緩存處理:
npm cache clean --force
項目創(chuàng)建
創(chuàng)建項目:
vue create 項目名 // 要提前進入目標目錄(項目應(yīng)該創(chuàng)建在哪個目錄下) // 選擇自定義方式創(chuàng)建項目,選取Router, Vuex插件
一步一步的選擇:
babel:把ES6的語法自動轉(zhuǎn)換成ES5。瀏覽器對ES5兼容最好
TypeScript:TS的環(huán)境
Progressive:前臺優(yōu)化機制,有很多的插件
Router:前臺路由
Vuex:前臺倉庫,相當(dāng)于全局單例,完成個組件間傳參的。
在一個地方給一個對象賦值,在任何地方拿到的值都是一樣的
CSS Pre-processors:預(yù)編譯器 less sass css預(yù)編譯器,最終轉(zhuǎn)換成原生的css,瀏覽器才能識別。
我們用原生CSS,所以這個不用安裝
Linter / Formatter:代碼規(guī)范。如果代碼寫的不規(guī)范直接報錯。前端工程師會安裝,因為代碼規(guī)范。
Unit Testing:測試用的
E2E Testing:測試用的
項目啟動停止
cnpm run serve / ctrl+c // 要提前進入項目根目錄
推薦使用pycharm啟動項目:
創(chuàng)建啟動方式npm
cnpm install 重新構(gòu)建項目依賴環(huán)境
項目目錄結(jié)構(gòu)分析
├── v-proj | ├── node_modules // 當(dāng)前項目所有依賴,一般不可以移植給其他電腦環(huán)境 | ├── public | | ├── favicon.ico // 標簽圖標 | | └── index.html // 當(dāng)前項目唯一的頁面 | ├── src | | ├── assets // 靜態(tài)資源img、css、js | | ├── components // 小組件 | | ├── views // 頁面組件 | | ├── App.vue // 根組件 | | ├── main.js // 全局腳本文件(項目的入口) | | ├── router | | | └── index.js// 路由腳本文件(配置路由 url鏈接 與 頁面組件的映射關(guān)系) | | └── store | | | └── index.js// 倉庫腳本文件(vuex插件的配置文件,數(shù)據(jù)倉庫) | ├── README.md └ └── package.json等配置文件
全局腳本配置
1)main.js是項目的入口文件
2)new Vue()就是創(chuàng)建根組件,用render讀取一個.vue文件,$mount渲染替換index.html中的占位
3)項目所依賴的環(huán)境,比如:vue環(huán)境、路由環(huán)境、倉庫環(huán)境、第三方環(huán)境、自定義環(huán)境都是在main.js中完成
import Vue from 'vue' // 加載vue環(huán)境 import App from './App.vue' // 加載根組件 import router from './router' // 加載路由環(huán)境 import store from './store' // 加載數(shù)據(jù)倉庫環(huán)境 Vue.config.productionTip = false; // tip小提示 import FirstCP from './views/FirstCP' new Vue({ el: '#app', router: router, store: store, render: function (readVueFn) { return readVueFn(FirstCP); // 讀取FirstCP.vue替換index.html中的占位 } });
index.html詳細介紹
單頁面:
<!DOCTYPE html> <html lang="zh"> <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" rel="external nofollow" > <title><%= htmlWebpackPlugin.options.title %></title> </head> <body> <div id="app"></div> // 占位的。其他的頁面來替換它,實現(xiàn)頁面跳轉(zhuǎn) </body> </html>
main.js入口文件詳細
import Vue from 'vue' import App from './App.vue' // 根組件 import router from './router' import store from './store' Vue.config.productionTip = false; new Vue({ router, // router: router, 簡寫 store, // store: store, 簡寫 render: h => h(App) // 箭頭函數(shù) 擴展開:render: function (readVueFn) { // return readVueFn(FirstCP); // } }).$mount('#app');//掛載點,等價與: el: '#app',
1)main.js是項目的入口文件
2)new Vue()就是創(chuàng)建根組件,用render讀取一個.vue文件,$mount渲染替換index.html中的占位
3)項目所依賴的環(huán)境,比如:vue環(huán)境、路由環(huán)境、倉庫環(huán)境、第三方環(huán)境、自定義環(huán)境都是在main.js中完成
App.vue跟組件介紹
<!-- 1)App.vue是項目的根組件,是唯一由main.js加載渲染的組件,就是替換index.html頁面中的<div id="app"></div>的占位標簽 2)實際開發(fā)中App.vue文件中,只需要書寫下方五行代碼即可(可以額外增加其他代碼) 3)router-view是一個占位標簽,由router插件控制,可以在router的配置文件中進行配置 4)router-view就是根據(jù)router在index.js中配置的路由關(guān)系被 指定路徑 匹配 指定頁面組件 渲染 router-view或被不同的頁面組件替換,就形成了頁面跳轉(zhuǎn) --> <template> <div id="app"> <!-- 前臺路由占位標簽,末尾的/代表單標簽的結(jié)束 --> <router-view /> </div> </template> <style> body { margin: 0; } </style>
router-index.js 路由介紹
import Vue from 'vue' import VueRouter from 'vue-router' // import 別名 from '文件' import Home from '../views/Home' import About from '../views/About' import First from '../views/FirstCP' import Second from '../views/Second' Vue.use(VueRouter); // 路由配置 // 1)當(dāng)用戶在瀏覽器中訪問的路由是 / ,router插件就會加載 Home.vue文件,同理 /about 就是 About.vue文件 // 2)將加載的 Home.vue文件 或者 About.vue文件,去替換App.vue文件中的 <router-view />占位符 // 3)用redirect配置來實現(xiàn)路由的重定向 const routes = [ { path: '/', name: 'Home', component: Home }, { path: '/home', redirect: '/', // 路由的重定向 }, { path: '/about', name: 'About', component: About }, { path: '/first', name: 'First', component: First }, { path: '/second', name: 'Second', component: Second } ]; const router = new VueRouter({ mode: 'history', base: process.env.BASE_URL, routes }); export default router
以上就是vue項目環(huán)境搭建 啟動 移植操作示例及目錄結(jié)構(gòu)分析 的詳細內(nèi)容,更多關(guān)于vue項目環(huán)境搭建 啟動 移植 目錄結(jié)構(gòu)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
vue?使用addRoutes動態(tài)添加路由及刷新頁面跳轉(zhuǎn)404路由的問題解決方案
我自己使用addRoutes動態(tài)添加的路由頁面,使用router-link標簽可以跳轉(zhuǎn),但是一刷新就會自動跳轉(zhuǎn)到我定義的通配符?*?指向的404路由頁面,這說明沒有找到指定路由才跳到404路由的,這樣的情況如何處理呢,下面小編給大家分享解決方案,一起看看吧2023-10-10vue+vant-UI框架實現(xiàn)購物車的復(fù)選框全選和反選功能
這篇文章主要介紹了vue+vant-UI框架實現(xiàn)購物車的復(fù)選框全選和反選功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-11-11在vue中使用axios實現(xiàn)post方式獲取二進制流下載文件(實例代碼)
這篇文章主要介紹了在vue中使用axios實現(xiàn)post方式獲取二進制流下載文件的相關(guān)資料,需要的朋友可以參考下2019-12-12vue使用ElementUI時導(dǎo)航欄默認展開功能的實現(xiàn)
這篇文章主要介紹了vue使用ElementUI時導(dǎo)航欄默認展開功能的實現(xiàn),本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2018-07-07vue3使用vis繪制甘特圖制作timeline可拖動時間軸及時間軸中文化(推薦)
這篇文章主要介紹了vue3使用vis繪制甘特圖制作timeline可拖動時間軸,時間軸中文化,本文結(jié)合實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-02-02