关键词搜索

全站搜索
×
密码登录在这里
×
注册会员
×

已有账号? 请点击

忘记密码

已有账号? 请点击

使用其他方式登录

Vue中Axios封装API接口详细方法

发布2021-04-16 浏览1893次

详情内容

在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)
}


点击QQ咨询
开通会员
返回顶部
×
  • 微信支付
微信扫码支付
微信扫码支付
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
确定支付下载