如何用vue封裝axios請(qǐng)求
其實(shí)vue封裝axios是很簡(jiǎn)單的
首先 在src路徑下建http文件夾 并且創(chuàng)建api.js env.js request.js 這三個(gè)文件
env.js文件
這個(gè)文件主要就是封裝我們的公共地址
export default {// 開(kāi)發(fā)環(huán)境dev: { baseUrl: '開(kāi)發(fā)環(huán)境公共地址'},// 測(cè)試環(huán)境testtest: { baseUrl: '測(cè)試環(huán)境公共地址'},//線上接口prod: { baseUrl: '線上環(huán)境公共地址'}};
request.js 文件
這里主要就是創(chuàng)建axios 以及封裝請(qǐng)求攔截和相應(yīng)攔截
import axios from 'axios';import env from './env';//這里是私有域名 但是也可以不寫(xiě)var vipUrl = '/app';// 創(chuàng)建axios實(shí)例const service = axios.create({//這里拿線上接口測(cè)試baseUrl: env.prod.baseUrl + vipUrl, headers:{},//請(qǐng)求頭 settimeout:2000,//超時(shí)時(shí)間});// 添加請(qǐng)求攔截器service.interceptors.request.use(config => { // 在發(fā)送請(qǐng)求之前做些什么 config.headers['deviceType'] = 'H5'; console.log('請(qǐng)求的數(shù)據(jù):', config); return config;},error => { // 對(duì)請(qǐng)求錯(cuò)誤做些什么 return Promise.reject('出錯(cuò)', error);});// 添加響應(yīng)攔截器service.interceptors.response.use(response => { // 對(duì)響應(yīng)數(shù)據(jù)做點(diǎn)什么 // console.log('返回的數(shù)據(jù)', response); return response;},error => { // 對(duì)響應(yīng)錯(cuò)誤做點(diǎn)什么 return Promise.reject(error);});export default service;
api.js
這個(gè)文件中主要是需要的接口地址
//引入request.js文件import request from './request';// 輪播export function getBanners(data) {return request({ url: '/banner',//這個(gè)地址是去掉公共地址和私有域名之后剩下的地址 method: 'GET',//請(qǐng)求方式 支持多種方式 get post put delete 等等 data//發(fā)送請(qǐng)求要配置的參數(shù) 無(wú)參數(shù)的情況下也可以不寫(xiě)});}
最后是在頁(yè)面中的引用
那個(gè)頁(yè)面需要請(qǐng)求數(shù)據(jù) 就引入相應(yīng)的方法 比如我的首頁(yè)需要引入banner
<script>//引入需要的接口import { getBanners } from '../http/api';export default {name: 'Home',components: {},mounted() { //直接使用 .then 是請(qǐng)求成功的回調(diào) .catch是請(qǐng)求失敗的回調(diào) getBanners() .then(result => {window.console.log('111', result); }) .catch(err => {window.console.log('222', err); });},methods: {}};</script>
以上就是如何用vue封裝axios請(qǐng)求的詳細(xì)內(nèi)容,更多關(guān)于用vue封裝axios請(qǐng)求的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. 利用CSS3新特性創(chuàng)建透明邊框三角2. html清除浮動(dòng)的6種方法示例3. CSS代碼檢查工具stylelint的使用方法詳解4. Vue3使用JSX的方法實(shí)例(筆記自用)5. vue實(shí)現(xiàn)將自己網(wǎng)站(h5鏈接)分享到微信中形成小卡片的超詳細(xì)教程6. CSS3實(shí)例分享之多重背景的實(shí)現(xiàn)(Multiple backgrounds)7. 詳解CSS偽元素的妙用單標(biāo)簽之美8. 使用css實(shí)現(xiàn)全兼容tooltip提示框9. JavaScript數(shù)據(jù)類(lèi)型對(duì)函數(shù)式編程的影響示例解析10. 不要在HTML中濫用div
