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是兩回事?。。?/strong>
// 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-03Element實現(xiàn)動態(tài)增加多個輸入框并校驗
本文主要介紹了Element實現(xiàn)動態(tài)增加多個輸入框并校驗,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-07-07基于vue2.0的活動倒計時組件countdown(附源碼下載)
這是一款基于vue2.0的活動倒計時組件,可以使用服務(wù)端時間作為當前時間,在倒計時開始和結(jié)束時可以自定義回調(diào)函數(shù)。這篇文章主要介紹了基于vue2.0的活動倒計時組件countdown,需要的朋友可以參考下2018-10-10Vue數(shù)據(jù)驅(qū)動模擬實現(xiàn)1
這篇文章主要介紹了Vue數(shù)據(jù)驅(qū)動模擬實現(xiàn)的相關(guān)資料,允許采用簡潔的模板語法聲明式的將數(shù)據(jù)渲染進DOM,且數(shù)據(jù)與DOM綁定在一起,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-01-01