vue多環(huán)境配置及axios封裝使用的方法

今天小編給大家分享一下vue多環(huán)境配置及axios封裝使用的方法的相關(guān)知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

成都創(chuàng)新互聯(lián)主要從事成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)鄠邑,10年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575

1.創(chuàng)建配置文件

在項目根目錄下創(chuàng)建 .env.環(huán)境名稱 例如:.env.prd .env.dev

在配置文件中配置不同環(huán)境的api路徑

# env

NODE_ENV = 'development'

# flag

VUE_APP_FLAG = 'dev' 

# domain url 接口域名、靜態(tài)資源地址

VUE_APP_APIDOMAIN = 'http://localhost:8081'

VUE_APP_ASSETSURL = ''

2.在config目錄

index.js : 導(dǎo)出當(dāng)前環(huán)境配置中的地址

let envInfo = process.env    //process.env 獲取當(dāng)前啟動的環(huán)境配置

let [apiDomain,assetsUrl] = [envInfo.VUE_APP_APIDOMAIN,envInfo.VUE_APP_ASSETSURL]  //獲取配置中的值

export default {

    apiDomain,

    assetsUrl

}

urlMap.js :

/**

 * @desc 遠程接口地址和本地mock地址映射表

 * key:接口地址

 * value:本地地址

 */

const mockBaseUrl = 'http://rap2api.taobao.org/app/mock'

export default {

  '/user/login': mockBaseUrl + '/223948/login',

  '/user/info': mockBaseUrl + '/223948/info',

  '/user/logout': mockBaseUrl + '/223948/logout',

  '/table/list': mockBaseUrl + '/223948/table-list'

}

3.寫獲取地址的工具方法

在utils目錄下創(chuàng)建get-url.js

import config from '@/config' 

import urlMap from '@/config/urlMap'

/**

 * @desc 遠程接口地址和本地mock地址映射表

 * key:接口地址

 * value:本地地址

 */

export default function getUrl(url,api=1,domainType=1){

    //api: 0  mock服務(wù)  1接口服務(wù)

    //domainType:  1取apiDomain,可自定義其他域名

    let domain = ''

    if(domainType == 1){

        domain = config.apiDomain

    }

    return api===0 ? urlMap[url] : domain+url

}

4.在js中導(dǎo)入getUrl方法,并使用

import request from '@/assets/js/utils/request'

import getUrl from '@/assets/js/utils/get-url'

export function getAccountList(data){

    return request({

        url: getUrl('/person/getPAList'),

        method: 'post',

        data

    })

}

5.request是封裝axios實例

在utils下的request中

import axios from 'axios'

import {  MessageBox } from 'element-ui'

//創(chuàng)建axios實例

const service = axios.create({

    timeout:5000

})

//request攔截器.可以后續(xù)完善

service.interceptors.request.use(config=>{

    //do something before request is send

    //if(store.getters.token){

    //    config.headers['token'] = getToken()

   // }

    return config

},error=>{

    //do something with request error

    console.log(error);

    Promise.reject(error)

})

//response攔截器,

service.interceptors.response.use(

    response => {

    const res = response.data

    if(res.code !='0'){

       // if(res.code ==='4001' || res.code==='4002'){

       //     MessageBox.confirm();

       // }

       //自己加一些處理

    }else{

        return res.content;

    }

    }

)

export default service;

6.調(diào)用方法

由于上面例子中g(shù)etAccountList方法返回的是axios實例(也就是返回了Promise對象),所以調(diào)用如下,可以使用.then 或者.catch 執(zhí)行

  created:function(){

       getAccountList(this.personAccountDTO).then(result=>{

          this.account = result;

      })

  },

7.添加啟動項目

在package.json 加上帶環(huán)境配置的啟動腳本dev 和prd

{

  "scripts": {

    "serve": "vue-cli-service serve",

    "build": "vue-cli-service build",

    "lint": "vue-cli-service lint",

    "dev": "vue-cli-service serve --mode dev",   

    "prd": "vue-cli-service serve --mode prd"

  },

  ........

8.啟動項目

npm run dev   #.env.dev文件中配置生效

以上就是“vue多環(huán)境配置及axios封裝使用的方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

本文名稱:vue多環(huán)境配置及axios封裝使用的方法
本文來源:http://muchs.cn/article38/ihshsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、響應(yīng)式網(wǎng)站搜索引擎優(yōu)化、建站公司外貿(mào)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)