vue的axios和mock.js你了解嗎
axios.js
axios是vue中用于發(fā)送ajax(http)請求的工具類
安裝:
npm install axios
全局引入 axios
// main.js import http from 'axios'; Vue.prototype.$http = http;
通過axios發(fā)送一個http請求
<script>
// ...
mounted(){
// 發(fā)送請求
this.$http.get('./user/ID=123').then(function(success){
//成功請求區(qū)間
console.dir(success)
}).catch(function(error){
//失敗返回區(qū)間
console.dir(error)
})
}
// ...
</script>
封裝一個簡單的axios包,為axios添加攔截器和判斷允許環(huán)境(用于判斷請求地址)axios.js
注意這部分的攔截器與mockjs是兩回事?。?!
// api/axios.js
import axios from 'axios'
import config from '../config'
const baseUrl = process.env.NODE_ENV == 'development' ? config.baseUrl.dev : config.baseUrl.pro
class HttpRequest {
constructor(baseUrl){
this.baseUrl = baseUrl
}
getInsideConfig(){
const config = {
baseUrl:this.baseUrl,
header:{}
}
return config
}
// 攔截器這部分,官網(wǎng)copy過來的,注意這部分的攔截器與mock攔截器是兩回事?。?!
interceptors(instance){
// 添加請求攔截器
instance.interceptors.request.use(function (config) {
// 在發(fā)送請求之前做些什么
// console.dir(config)
return config;
}, function (error) {
// 對請求錯誤做些什么
return Promise.reject(error);
});
// 添加響應(yīng)攔截器
instance.interceptors.response.use(function (response) {
// 對響應(yīng)數(shù)據(jù)做點什么
return response;
}, function (error) {
// 對響應(yīng)錯誤做點什么
console.dir(error,'error')
return Promise.reject(error);
});
}
// 請求方法
request(options){
const instance = axios.create()
options = {...this.getInsideConfig, ...options}
this.interceptors(instance)
return instance(options)
}
}
export default new HttpRequest(baseUrl)
使用。添加data.js
// data.js
import axios from './axios'
export const getMenu = (param)=>{
return axios.request({
url:'/permission/getMenu',
method:'post',
data:param
})
}
export const test = (param)=>{
return axios.request({
// 修改域名
baseUrl:'https://me.kervi.cn',
url:'/',
method:'get',
data:param
})
}
mockjs
mockjs可以用于攔截ajax請求,在mock的回調(diào)函數(shù)中可以給請求添加模擬數(shù)據(jù),用于模擬后臺接口
安裝
npm i mockjs
編寫mockjs攔截文件mock.js
import Mock from 'mockjs'
import homeApi from './mockservice/home'
// Mock.mock('攔截地址',設(shè)置返回數(shù)據(jù)的回調(diào)函數(shù)),攔截 home/getData
Mock.mock('/home/getData', homeApi.getStaticData)
mockservice/home.js
// 簡單模擬一下方法,如果需要文件,請幫我點個贊,私聊
export default {
getStatisticalData: () => {
return {code:200,data:{list:[1,2,3,4,5]}
}
}

引入mock.js
// main.js 中引入 import '../api/mock.js'
發(fā)送ajax請求,測試攔截


總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
關(guān)于vue中路由的跳轉(zhuǎn)和參數(shù)傳遞,參數(shù)獲取
這篇文章主要介紹了關(guān)于vue中路由的跳轉(zhuǎn)和參數(shù)傳遞,參數(shù)獲取方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
Element實現(xiàn)動態(tài)增加多個輸入框并校驗
本文主要介紹了Element實現(xiàn)動態(tài)增加多個輸入框并校驗,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
基于vue2.0的活動倒計時組件countdown(附源碼下載)
這是一款基于vue2.0的活動倒計時組件,可以使用服務(wù)端時間作為當(dāng)前時間,在倒計時開始和結(jié)束時可以自定義回調(diào)函數(shù)。這篇文章主要介紹了基于vue2.0的活動倒計時組件countdown,需要的朋友可以參考下2018-10-10
Vue數(shù)據(jù)驅(qū)動模擬實現(xiàn)1
這篇文章主要介紹了Vue數(shù)據(jù)驅(qū)動模擬實現(xiàn)的相關(guān)資料,允許采用簡潔的模板語法聲明式的將數(shù)據(jù)渲染進DOM,且數(shù)據(jù)與DOM綁定在一起,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-01-01

