• axios的实例和模块封装


    axios的实例应用

    为什么要创建实例

    在开发大型项目时,最好不要直接使用全局的axios,而是创建单独的实例

    axios实例的创建和使用

    import axios from 'axios'
    //创建axios实例
    const instance1 = axios.create({
      baseURL:'http://123.207.32.32:8000',
      timeout:5000
    })
    //使用实例
    instance1({
      url:'/home/multidata'
    }).then(res=>{
      console.log(res)
    })
    instance1({
      url:'/home/data',
      params:{
        type:"page",
        page:1
      }
    }).then(res=>{
      console.log(res)
    })
    //创建其他实例(每个实例有自己独立的配置)
    const instance2 = axios.create({
      baseURL:'https://movie.douban.com/',
      timeout:3000
    })

     为什么要封装

    在多个组件中,避免直接import axios from 'axios'

    封装方法1

    src etwork equest.js 封装
    import axios from 'axios'
    
    //创建一个叫request的实例
    export function request(config) {
     return new Promise((resolve,reject)=>{
       //创建实例
       const instance = axios.create({
         baseURL:'http://123.207.32.32:8000',
         timeout:5000
       })
       //发送网络请求
       instance(config)
         .then(res=>{
           resolve(res)
         })
         .catch(err=>{
           reject(err)
         })
     })
    }
    View Code
    使用
    //request模块
    import {request} from "./network/request";
    
    //request返回的是一个Promise 所以可以直接.then
    request({
      url:'/home/multidata'
    }).then(res=>{
      console.log(res);
    }).catch(err=>{
      console.log(err);
    })
    //为什么 instance 可以直接调.then 
    //因为AxiosInstance的返回值本身就是一个Promise
    因此可以简略成封装方法2

     

    封装方法2 (推荐)

     src etwork equest.js 封装
    import axios from 'axios'
    //创建一个叫request的实例
    export function request(config) {
       //创建实例
       const instance = axios.create({
         baseURL:'http://123.207.32.32:8000',
         timeout:5000
       })
       //发送网络请求
       //为什么 instance 可以直接调.then
       //因为AxiosInstance的返回值本身就是一个Promise 只要直接return就可以了
       return instance(config)
    }
    使用方法和原来一样
  • 相关阅读:
    jquery实现短信群发功能(机试题)
    PreparedStatement与Statement区别
    java中static关键字
    java笔试01
    java基础
    sqlserver errorcode
    改变分辨率会牵连到EMF图的大小
    基础知识——各种分辨率的知识 From http://vod.sjtu.edu.cn/help/Article_Show.asp?ArticleID=308
    本地存储
    Silverlight 3 MultiThreading编程http://blog.csdn.net/zjfei/archive/2009/07/27/4384428.aspx
  • 原文地址:https://www.cnblogs.com/polax/p/13274026.html
Copyright © 2020-2023  润新知