使用vue-cli
開發項目過程當中, 根據開發環境和正式環境不一樣, 咱們每每須要請求不一樣域名下的後臺接口, 這時候, 該怎麼去設置, 達到同一種寫法能夠根據環境不一樣而自動切換請求域名呢? 本文將會介紹兩種配置方式.本文中全部請求都是使用 axiosjavascript
一、修改
config/dev.env.js
(開發環境的配置)
'use strict' const merge = require('webpack-merge') const prodEnv = require('./prod.env') module.exports = merge(prodEnv, { NODE_ENV: '"development"', API_HOST: '"http://localhost:3000"' // 開發環境接口地址(這裏是增長的內容) })
二、 修改
config/prod.env.js
(正式環境的配置)
'use strict' module.exports = { NODE_ENV: '"production"', API_HOST: '"http://localhost:8888"' // 正式環境接口地址(這裏是增長的內容) }
三、 使用
axios
發送請求
axios.get(process.env.API_HOST + '/api/userData') // 請求前加上 `process.env.API_HOST` .then(data => { console.log(data) })
第二種方法主要使用axios
的建立實例的用法在
main.js
配置axios
vue
import axios from 'axios' const host = process.env.NODE_ENV === 'development' ? 'dev api host' : 'prod api host' // 根據 process.env.NODE_ENV 的值判斷當前是什麼環境 const instance = axios.create({ baseURL: host }) Vue.prototype.$http = instance
在組件中調用
this.$http.get('/api/userData') .then(data => { console.log(data) })
我的通常採用第二種方式,由於寫的方便。不知你們都是怎麼處理這個問題,歡迎分享。若是文章中有任何問題或者有更好的方式,也歡迎指正。java
文章很差,也僅是分享個人一些觀點,感謝觀看!webpack