vue的axios和mock.js你了解嗎
更新時間:2022年02月10日 16:02:02 作者:jayLog
這篇文章主要為大家詳細介紹了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);
});
// 添加響應攔截器
instance.interceptors.response.use(function (response) {
// 對響應數(shù)據(jù)做點什么
return response;
}, function (error) {
// 對響應錯誤做點什么
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ù)據(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請求,測試攔截


總結
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內(nèi)容!
相關文章
vue.js 實現(xiàn)點擊按鈕動態(tài)添加li的方法
今天小編就為大家分享一篇vue.js 實現(xiàn)點擊按鈕動態(tài)添加li的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09
vue 設置 input 為不可以編輯的實現(xiàn)方法
今天小編就為大家分享一篇vue 設置 input 為不可以編輯的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09
vue el-tree 默認展開第一個節(jié)點的實現(xiàn)代碼
這篇文章主要介紹了vue el-tree 默認展開第一個節(jié)點的實現(xiàn)代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05
elementUI中el-table表頭和內(nèi)容全部一行顯示完整的方法
最近參與web開發(fā)時,讓我解決一個elementui控制內(nèi)容單行顯示,下面這篇文章主要給大家介紹了關于elementUI中el-table表頭和內(nèi)容全部一行顯示完整的方法,需要的朋友可以參考下2023-06-06

