30.axios的封装

2019-12-05  本文已影响0人  最爱喝龙井

为什么要对框架进行封装

我们在进行网络请求的时候,可以在每个页面引入axios,然后通过它发送网络请求,但是这样做的话,对框架就太过于依赖了,假如有一天这个框架不在维护,而你的项目中右100个页面都是通过引入框架发送的请求的话,那么你就去厕所哭吧😎,所以,我们需要想办法对这个框架进行一层封装,然后所有需要发送网络请求的页面都来引入我封装好的代码,这样如果出问题了,我只需要改我封装的代码就好了👍

如何对框架进行封装

首先,我们创建一个network的文件夹,里面新建一个request.js的文件,我们封装的代码就写在这里面;
然后,我们在request文件中的代码如下:

import axios from 'axios';

export function request(config, success, failure) {
    const instance = axios.create({
        baseURL: 'https:api.github.com',
        timeout: 1000
    });
    instance(config)
    .then(res => {
        success(res)
    })
    .catch(err => {
        failure(err)
    })
}
request({
      url: '/users'
    }, res => {
      console.log(res)
    })
export function request(config) {
    const instance = axios.create({
        baseURL: 'https:api.github.com',
        timeout: 1000
    });
    instance(config.baseConfig)
    .then(res => {
        config.success(res)
    })
    .catch(err => {
        config.failure(err)
    })
}
request({
      baseConfig: {
        url: '/users'
      },
      success(res) {
        console.log(res)
      }
    })
export function request(config) {
    return new Promise((request, reject) => {
        const instance = axios.create({
            baseURL: 'https:api.github.com',
            timeout: 1000
        });
        instance(config)
            .then(res => {
                request(res)
            })
            .catch(err => {
                reject(err)
            })
    })
}
request({
      url: '/users'
    }).then(res => {
      console.log(res)
    })
export function request(config) {
    const instance = axios.create({
        baseURL: 'https:api.github.com',
        timeout: 1000
    });
    
    return instance(config)

}
request({
      url: '/users'
    }).then(res => {
      console.log(res)
    })
上一篇 下一篇

猜你喜欢

热点阅读