【vue+axios】简单项目的简单封装和运用
1、安装axios和qs:
vue和后台交互获取数据通常使用axios库
qs.stringify(data)可以解决data数据格式问题
npm install --save axios vue-axios qs
2、封装axios:
我是src下创建两个文件夹:api和utils
api用来放接口数据
utils用来放封装的公共方法
3、request.js:
1 import axios from 'axios'; 2 const service = axios.create({ 3 // process.env.NODE_ENV === 'development' 来判断是否开发环境 4 // easy-mock服务挂了,暂时不使用了 5 // baseURL: 'https://www.easy-mock.com/mock/592501a391470c0ac1fab128', 6 timeout: 5000 7 }); 8 service.interceptors.request.use( 9 config => { 10 return config; 11 }, 12 error => { 13 console.log(error); 14 return Promise.reject(); 15 } 16 ); 17 service.interceptors.response.use( 18 response => { 19 if (response.status === 200) { 20 return response.data; 21 } else { 22 Promise.reject(); 23 } 24 }, 25 error => { 26 console.log(error); 27 return Promise.reject(); 28 } 29 ); 30 export default service;
4、api.js:
1 // api:'http://localhost:8080/swagger-ui.html' 2 import qs from 'qs' 3 import request from '../utils/request'; 4 // 这里写个接口地址 下面直接用就行 5 let basurl = 'http://127.0.0.1:8080' 6 // 然后get/post啥的直接写就行: 7 export const DeleteCourse = query => { 8 return request({ 9 url: basurl+'/teacher/deleteCourse', 10 method: 'post', 11 data: query 12 }); 13 }; 14 export const FindCourse = query => { 15 return request({ 16 url: basurl+'/teacher/findCourse', 17 method: 'get', 18 params: query 19 }); 20 };
5、运用:
1 import {FindCourse} from '@/api/index';
1 async getList(){ 2 await FindCourse(this.searchFilter).then(res=>{ 3 this.tableData=res.data; 4 }) 5 },