一個簡單vue.config.js配置和axios簡單封裝
一個簡單vue.config.js配置和axios封裝
從vue-cli3.0腳手架開始,搭建的Vue專案,目錄中是不存在vue.config.js檔案的。所以當我們想要做一些自己的配置的時候要自己手動建一個vue.config.js檔案。
1、vue.config.js配置
新建vue.config.js
vue.config.js程式碼
module.exports = {
publicPath: process.env.NODE_ENV === 'production' ? '/kuaChengTongBan/' : '/',
outputDir: 'kuaChengTongBan', // 更改打包路徑,專案預設的路徑是dist
// 請求代理
devServer: {
proxy: {
//廣州市海珠區
'/ApprItemInterface': {//'/ApprItemInterface'是介面部署的包名
target: 'http://192.168.0.152:7001',//該包名部署的埠
ws: true,
changeOrigin: true
},
}
},
// 生產環境下的sourceMap
productionSourceMap: true,
chainWebpack: config => {
if (process.env.NODE_ENV === 'production') {
// 為生產環境修改配置...
config
.externals({
'vue': 'Vue',
'vue-router': 'VueRouter'
})
} else {
// 為開發環境修改配置...
}
},
lintOnSave: false, // eslint-loader 是否在儲存的時候檢查
}
2、axios簡單封裝使用
首先,進入vue專案,開啟終端執行下面指令,安裝axios
1| $ npm install axios --save
- 在專案的跟目錄下建一個utils資料夾用於存放axios的封裝檔案。
- 首先建立一個.js檔案,這裡我將檔名命名為ajax.js,這個檔案用於封裝axios。
- 再建一個crossDomain.js檔案,用於寫呼叫的介面。
ajax.js程式碼
import axios from 'axios'
import qs from 'qs'
const ajaxBaseUrl = ''
// 新增請求攔截器
axios.interceptors.request.use(function (config) {
// 在傳送請求之前做些什麼
return config;
}, function (error) {
// 對請求錯誤做些什麼
return Promise.reject(error)
});
// 新增響應攔截器
axios.interceptors.response.use(function (response) {
// 對響應資料做點什麼
if (response.data) {
return response.data
} else {
return Promise.reject(response)
}
}, function (error) {
// 對響應錯誤做點什麼
return Promise.reject(error)
});
/**
*
* @param {string} url
* @param {object} data
* @param {string} type
* @param {function} callFunc
* @param {function} filter
*/
export function fetchData(url, data, type, callFunc, filter) {
let sendData = '';
if (filter && filter.constructor === Function) {
sendData = filter(data);
}
const config = {};
config.method = type || 'post';
config.url = ajaxBaseUrl + url;
config.headers = {
'Content-Type': 'application/json;charset=UTF-8'
};
if (type === 'get') {
config.params = data;
} else {
config.data = sendData ? qs.stringify(data) : qs.stringify(data);
}
console.log("config",config, config.url );
if (!callFunc) {
return axios(config)
}
axios(config).then(res => {
callFunc(res)
}).catch(err => {
callFunc({
desc: 'axios統一攔截,捕獲錯誤',
err: err
});
console.log('axios統一攔截,捕獲錯誤:', err)
})
}
export function fetchMultiData(axiosArr, callFunc) {
axios.all(axiosArr).then(axios.spread((...resArr) => {
callFunc(resArr);
})).catch(err => {
callFunc({
desc: 'axios統一攔截,捕獲錯誤',
err: err
});
console.log('axios統一攔截,捕獲錯誤:', err)
})
}
在這ajax.js中可以看到使用了 qs 外掛,所以在使用之前我們要在終端中執行下面指令進行安裝。
1|npm install qs
這裡主要使用了下面兩個方法:
- qs.parse()是將URL解析成物件的形式
- qs.stringify()是將物件 序列化成URL的形式,以&進行拼接
crossDomain.js程式碼
import { fetchData } from './ajax.js';//在這個檔案頂部引入封裝axios的js檔案
// 校驗函式
const checkFunc = (func) => {
return func && (func.constructor === Function);
};
//暴露介面方法sgCashProgramList
export function sgCashProgramList(data, type, callFunc) {
const options = checkFunc(callFunc) ? [data, type, callFunc] : [data, type];
let url = '/ApprItemInterface/api/program/programList/1/query.v';//介面
return fetchData(url, ...options);
}
使用上面這個介面:
在需要使用該介面的頁面中引入該 介面如下:
全部引入:使用這個語句就可以在頁面中呼叫crossDomain.js中暴露的介面方法:
1|import * as requestApi from '@/utils/crossDomain.js';
單個引入:
1|import { sgCashProgramList } from '@/utils/crossDomain.js';
呼叫:
getList(val){
requestApi.sgCashProgramList({
attrTypeCode:val,
pageRowNum:9999
},'get', res => {
if(res.status ==200){
this.tableData1 = res.data.dataList;
}
});
}
相關文章
- 在 vue-cil 裡封裝一個簡單的 axiosVue封裝iOS
- 一個簡單的 Amqp 封裝MQ封裝
- 一個封裝簡單使用簡單的雷達檢視封裝
- 封裝一個簡單的日曆元件封裝元件
- 封裝一個簡單的動畫函式封裝動畫函式
- 一個最簡單的類JQuery封裝jQuery封裝
- 簡單問題,封裝和框架!封裝框架
- 簡單封裝get和jsonp封裝JSON
- Retrofit的簡單封裝封裝
- IQueryable的簡單封裝封裝
- ProgressFragment的簡單封裝Fragment封裝
- postfix安裝和簡單配置
- 一個簡單多庫配置
- Fetch API 簡單封裝API封裝
- 二維碼簡單封裝封裝
- Elasticsearch 的安裝和簡單配置Elasticsearch
- InnoSetup簡單教程一,安裝使用和簡單測試
- 程式碼改變世界 | 如何封裝一個簡單的 Koa封裝
- canvas簡單封裝一個echarts實現不了的餅圖Canvas封裝Echarts
- BaseActivity與BaseFragment的簡單封裝Fragment封裝
- 5-AVI–Fragment簡單封裝Fragment封裝
- iOS 基於FMDB簡單封裝iOS封裝
- 對getElementsByTagName()方法簡單封裝封裝
- webpack(簡單安裝配置)Web
- saltstack的安裝與簡單配置(一)
- Android 一起來封裝一個簡單易用的AdapterAndroid封裝APT
- 基於Vue.js封裝一個簡單的select元件Vue.js封裝元件
- 封裝一個簡單的樂觀鎖方法 -基於Laravel 8封裝Laravel
- Vue封裝一個簡單輕量的上傳檔案元件Vue封裝元件
- Golang(Go語言)封裝一個簡單的控制檯輸出包Golang封裝
- 一個簡單的ipf配置檔案
- Golang 對MongoDB的操作簡單封裝GolangMongoDB封裝
- JS棧結構的簡單封裝JS封裝
- 陣列常用方法的簡單封裝陣列封裝
- Flutter Dio http簡單封裝與使用FlutterHTTP封裝
- AndroidBroadcast做的簡單封裝:AndroidAST封裝
- 簡單安裝配置lighttpdhttpd
- vue+vux-ui+axios+mock搭建一個簡單vue框架VueUXUIiOSMock框架