vue的axios和mock.js你了解嗎
axios.js
axios是vue中用于發(fā)送ajax(http)請(qǐng)求的工具類
安裝:
npm install axios
全局引入 axios
// main.js import http from 'axios'; Vue.prototype.$http = http;
通過axios發(fā)送一個(gè)http請(qǐng)求
<script> // ... mounted(){ // 發(fā)送請(qǐng)求 this.$http.get('./user/ID=123').then(function(success){ //成功請(qǐng)求區(qū)間 console.dir(success) }).catch(function(error){ //失敗返回區(qū)間 console.dir(error) }) } // ... </script>
封裝一個(gè)簡單的axios包,為axios添加攔截器和判斷允許環(huán)境(用于判斷請(qǐng)求地址)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){ // 添加請(qǐng)求攔截器 instance.interceptors.request.use(function (config) { // 在發(fā)送請(qǐng)求之前做些什么 // console.dir(config) return config; }, function (error) { // 對(duì)請(qǐng)求錯(cuò)誤做些什么 return Promise.reject(error); }); // 添加響應(yīng)攔截器 instance.interceptors.response.use(function (response) { // 對(duì)響應(yīng)數(shù)據(jù)做點(diǎn)什么 return response; }, function (error) { // 對(duì)響應(yīng)錯(cuò)誤做點(diǎn)什么 console.dir(error,'error') return Promise.reject(error); }); } // 請(qǐng)求方法 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請(qǐng)求,在mock的回調(diào)函數(shù)中可以給請(qǐng)求添加模擬數(shù)據(jù),用于模擬后臺(tái)接口
安裝
npm i mockjs
編寫mockjs攔截文件mock.js
import Mock from 'mockjs' import homeApi from './mockservice/home' // Mock.mock('攔截地址',設(shè)置返回?cái)?shù)據(jù)的回調(diào)函數(shù)),攔截 home/getData Mock.mock('/home/getData', homeApi.getStaticData)
mockservice/home.js
// 簡單模擬一下方法,如果需要文件,請(qǐng)幫我點(diǎn)個(gè)贊,私聊 export default { getStatisticalData: () => { return {code:200,data:{list:[1,2,3,4,5]} } }
引入mock.js
// main.js 中引入 import '../api/mock.js'
發(fā)送ajax請(qǐng)求,測試攔截
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
vue iview實(shí)現(xiàn)動(dòng)態(tài)新增和刪除
這篇文章主要為大家詳細(xì)介紹了vue iview實(shí)現(xiàn)動(dòng)態(tài)新增和刪除,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06關(guān)于vue中路由的跳轉(zhuǎn)和參數(shù)傳遞,參數(shù)獲取
這篇文章主要介紹了關(guān)于vue中路由的跳轉(zhuǎn)和參數(shù)傳遞,參數(shù)獲取方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03Element實(shí)現(xiàn)動(dòng)態(tài)增加多個(gè)輸入框并校驗(yàn)
本文主要介紹了Element實(shí)現(xiàn)動(dòng)態(tài)增加多個(gè)輸入框并校驗(yàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07基于vue2.0的活動(dòng)倒計(jì)時(shí)組件countdown(附源碼下載)
這是一款基于vue2.0的活動(dòng)倒計(jì)時(shí)組件,可以使用服務(wù)端時(shí)間作為當(dāng)前時(shí)間,在倒計(jì)時(shí)開始和結(jié)束時(shí)可以自定義回調(diào)函數(shù)。這篇文章主要介紹了基于vue2.0的活動(dòng)倒計(jì)時(shí)組件countdown,需要的朋友可以參考下2018-10-10Vue數(shù)據(jù)驅(qū)動(dòng)模擬實(shí)現(xiàn)1
這篇文章主要介紹了Vue數(shù)據(jù)驅(qū)動(dòng)模擬實(shí)現(xiàn)的相關(guān)資料,允許采用簡潔的模板語法聲明式的將數(shù)據(jù)渲染進(jìn)DOM,且數(shù)據(jù)與DOM綁定在一起,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01