一、本文將分享如何快速搭起基于webpack+vue的前端項(xiàng)目框架,利用vue的自己的腳手架工具vue-cli搭建起基本的環(huán)境配置,再通過(guò)npm包管理工具引入相應(yīng)的依賴來(lái)完善項(xiàng)目的各種依賴框架。下面是具體實(shí)操。

二、基本命令操作。

1.在開發(fā)之前需要首先安裝node.js,直接百度搜索或者在其中文官網(wǎng)也可以下載http://nodejs.cn/download/,

在裝完node之后npm包管理工具也自動(dòng)的安裝好,安裝完之后,在命令行輸入node -v或者npm -v,出現(xiàn)版本號(hào)說(shuō)明安裝成功。如下圖所示:

2.在使用npm之前,最好把鏡像換成淘寶的,長(zhǎng)久使用,跑一下命令:npm config set registry https://registry.npm.taobao.org

替換成功后跑npm config get registry命令顯示淘寶鏡像路徑的話就代表替換成功。

3.第二步全局安裝vue-cli,在命令窗口輸入npm install -g vue-cli,然后跑vue -V出現(xiàn)版本號(hào)證明安裝成功。

4.開始生成項(xiàng)目,在本地硬盤找一個(gè)目錄存放代碼,然后打開命令行cd切換到相應(yīng)的路徑下,然后跑 vue init webpack Vue-Project(項(xiàng)目名稱)

vue init webpack Vue-Project(項(xiàng)目名稱)

5.輸入cd Vue-Project  然后安裝依賴npm install, 如果平常時(shí)開發(fā)就跑npm run dev(本地開發(fā)跑代碼),如果需要打包則跑npm run build

6.項(xiàng)目默認(rèn)監(jiān)聽的是80端口,容易跟其他應(yīng)用引起端口沖突,所以在項(xiàng)目下打開config文件夾,打開index.js,把端口改為8888,這樣就避免沖突了,

7.最后重新跑指令npm run dev   ,然后再地址欄輸入http://localhost:8888,就會(huì)出現(xiàn)相應(yīng)的頁(yè)面。

三、添加相應(yīng)的框架以及依賴

1.引入sass預(yù)編譯工具加快編碼速度,跑命令npm install node-sass --save-dev, npm install sass-loader --save-dev,如果node-sass比較難裝的話可以換成cnpm來(lái)下載依賴,具體可百度下做法。

操作:

在components目錄下新建一個(gè)header的目錄,新建兩個(gè)文件header.vue  header.scss,然后引入到app.vue中使用,因?yàn)関ue講的是模塊化開發(fā),所以我喜歡把樣式跟組件放到一個(gè)文件夾里跟其他模塊區(qū)分,

App.vue:

header.scss:

這樣就證明sass 是安裝成功了。

 2.引入axios接口請(qǐng)求框架,跑命令npm install axios --save-dev,npm install qs;

 然后在src目錄下新建一個(gè)http.js文件進(jìn)行接口請(qǐng)求的相關(guān)配置,

import Vue from 'vue'
import axios from 'axios'
import Qs from 'qs';


var instance = axios.create({
  //baseURL: 'https://some-domain.com/api/',
  timeout: timeout,
  responseType: 'json', // default,
  //headers: {'apikey': 'foobar'},
    transformRequest:function(data,headers){
     //為了避免qs格式化時(shí)對(duì)內(nèi)層對(duì)象的格式化先把內(nèi)層的對(duì)象轉(zhuǎn)為
     //由于使用的form-data傳數(shù)據(jù)所以要格式化
      if (typeof data == 'string') {
        
            headers.post['Content-Type'] = "application/json; charset=utf-8";
        
        }
      else if(!(data instanceof FormData)){
      headers.post['Content-Type'] = "application/x-www-form-urlencoded";
      
         for(let key in data){
            if(data[key]===undefined){
                data[key]=null;
            }
         }
         data = Qs.stringify(data);
    }

     return data;
    }
});
export default instance;  

Vue.prototype.$http=instance;

在使用請(qǐng)求接口的時(shí)候直接可以這樣用:(具體用法可以看下官方文檔)

this.$http.get(url).then((res)=>{
})

3.引入elementUI,跟人感覺(jué)elementUI是比較好用的vue組件UI,很多東西不用自己去寫,推薦使用,跑指令npm install element-ui --save,

然后在main.js中引入使用

import Vue from 'vue'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import App from './App.vue'

Vue.use(ElementUI)

當(dāng)然也可以按需引入,想用什么組件就引入什么組件,不要全部引入,這樣減少體積。

4.引入vuex

Vuex 是一個(gè)專為 Vue.js 應(yīng)用程序開發(fā)的狀態(tài)管理模式。它采用集中式存儲(chǔ)管理應(yīng)用的所有組件的狀態(tài),并以相應(yīng)的規(guī)則保證狀態(tài)以一種可預(yù)測(cè)的方式發(fā)生變化。

安裝:npm install vuex --save

具體使用這里不做詳細(xì)介紹,感興趣的可以看下中文官網(wǎng):https://vuex.vuejs.org/zh-cn/。