在Vue中常用用到接口,而必备的就是Axios,那怎么封装vue+AxiosAPI接口的思路及方法,下载提供详细的方法。
1、首先我们安装 axios
npm install axios;
2.新建一个文件http.js文件 和api.js文件 http.js文件来封装我们的axios,api.js用来统一管理我们的接口 *
3 http.js文件如下
//引入axios
import axios from "axios";
在我们开发项目的时候会有多种环境,就比如开发环境、测试环境、生产环境,使用axios.defaults.baseURL可以设置axios的默认请求地址。
// 设置默认路径
if (process.env.NODE_ENV == "development") { axios.defaults.baseURL = "http://120.53.31.103:84/" } if (process.env.NODE_ENV == "production") { axios.defaults.baseURL = "https://wap.365msmk.com/" }
// 通过axios.defaults.timeout设置默认的请求超时时间。如果超出了响应时间,就会告知用户当前请求超时,请刷新等等
axios.defaults.timeout = 10000;
设置接口请求拦截
axios.interceptors.request.use( config => { config.headers = { DeviceType : 'H5' } //设置响应头部 return config } )
// **使用promise返回axios 请求的结果 promise
//get**
export function get(url, params) { return new Promise((resolve, reject) => { axios.get(url, { params: params }).then(res => { resolve(res) }).catch(err => { reject(err); }) }) }
post
export function post(url, params) { return new Promise((resolve, reject) => { axios.post(url, params).then(res => { resolve(res.data) }).catch(err => { reject(err.data) }) })
axios的封装基本已经完成了 下面介绍一下api的统一管理
1首先我们在api.js文件中引入我们封装好的get和post方法
import { get, post } from './http' //使用get请求请求下我们的接口 api/app/recommend/appIndex export function getAppIndex() { return get("api/app/recommend/appIndex") }
2、在home.vue中引入api
import { getAppIndex } from "../api";
//使用 注意asyns 和await 必须同时去使用不然会报错导致接口用不了
async mounted() { var res = await getAppIndex(); if (res.data.code == 200) { console.log(res.data.data); } },
如果需要传参的话 先在 home.vue中把 参数以对象的形式放在curriculum(参数)里面
methods(){ screen() { var obj = { page: 1, limit: 10, is_vip: 0, }; curriculum(obj).then((res) => { console.log(res); }); }, }
2,在api.js 里面把参数写在后面就可以呀
export function curriculum(obj) { return get("api/app/courseBasis", obj) }