axios封装-reques.js

这篇具有很好参考价值的文章主要介绍了axios封装-reques.js。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 简介

参考网址:http://www.axios-js.com/zh-cn/docs/#axios-create-config

  • 在现代的前端开发中,我们经常需要与后端API进行交互,而axios是其中的一个非常流行的选择。为了简化请求的处

理和增强代码的可读性,我们经常需要对axios进行封装。

  • 我们会使用 axios 来请求后端接口, 一般都会对 axios 进行一些配置 (比如: 配置基础地址,请求响应拦截器等等)

  • 一般项目开发中, 都会对 axios 进行基本的二次封装, 单独封装到一个模块中, 便于使用

2. 封装axio的好处

  1. 代码复用:通过封装,我们可以将常用的请求参数、配置等封装为一个函数或模块,方便在其他地方复用。
  2. 增强可读性:通过封装,我们可以为每个请求定义一个清晰的函数名,使得代码更加易于阅读和理解。
  3. 简化代码:通过封装,我们可以将复杂的请求逻辑和参数处理抽象到一个函数中,使代码更加简洁。
  4. 统一管理错误:在封装中,我们可以统一处理请求中的错误,提供一致的错误处理机制。

3. 封装axio

目标:将 axios 请求方法,封装到 request 模块

  1. 安装 axios
npm i axios
// 或
yarn add axios
  1. 新建 utils/request.js 封装 axios 模块

    利用 axios.create 创建一个自定义的 axios 来使用

    参考:http://www.axios-js.com/zh-cn/docs/#axios-create-config

如下封装代码:

import store from '@/store'
import axios from 'axios'
import { Toast } from 'vant'

const instance = axios.create({
  // 基础地址
  baseURL: 'http://cba.itlike.com/public/index.php?s=/api/',
  // 超时时间
  timeout: 5000
  // headers: { 'X-Custom-Header': 'foobar' }
})

// 自定义配置
// 添加请求拦截器
instance.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  // 添加请求头信息
  config.headers.platform = 'H5'
  // 开启loading,禁止背景点击(节流处理)
  Toast.loading({
    message: '加载中...',
    forbidClick: true,
    duration: 0 // 不会自动关闭
  })
  // 添加token到请求头
  const token = store.getters.token
  if (token) {
    config.headers['Access-Token'] = token
  }
  return config
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error)
})

// 添加响应拦截器
instance.interceptors.response.use(function (response) {
  // 2xx 范围内的状态码都会触发该函数。
  // 对响应数据做点什么
  const res = response.data
  // console.log(res)
  if (res.status !== 200) {
    // 弹出提示信息
    Toast(res.message)
    // 抛出异常
    return Promise.reject(res.message)
  }
  // 去除loading效果
  Toast.clear()
  // 返回
  return res
}, function (error) {
  // console.log(error)
  // 超出 2xx 范围的状态码都会触发该函数。
  // 对响应错误做点什么
  return Promise.reject(error)
})

// 导出实例
export default instance

  1. 使用:创建文件:src/api/xxx.js
  • 如:src/api/user.js
import request from '@/utils/request'

// 获取个人信息
export const getUserInfoDetail = () => {
  return request.get('/user/info')
}

// 列表
export const getUserList = (userType, page) => {
  return request.get('/user/list', {
    params: {
      userType,
      page
    }
  })
}

// 获取短信验证码
export const getSmsCode = (captchaCode, captchaKey, mobile) => {
  return request.post('/captcha/sendSmsCaptcha', {
    form: {
      captchaCode,
      captchaKey,
      mobile
    }
  })
}

...

其他测试:文章来源地址https://www.toymoban.com/news/detail-811628.html

import request from '@/utils/request'
export default {
  name: 'LoginPage',
  async created () {
    const res = await request.get('/captcha/image')
    console.log(res)
  }
}

到了这里,关于axios封装-reques.js的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • axios 实战进阶练习( axios 封装篇)——基于 Vue3 + Node.js + ElementPlus 实现的联系人列表管理后台的 axios 封装实战

    在之前的文章 axios 实战进阶练习——基于 Vue3 + Node.js + ElementPlus 实现的联系人列表管理后台 中,我们完成了这个 基于 Vue3 + Node.js + ElementPlus 实现的联系人列表管理后台 的项目,其中项目的后端接口是用 Node.js 编写的,通过 axios 来获取接口,所以这篇文章我们来对这个 axi

    2024年02月11日
    浏览(45)
  • vue2 利用网络代理axios实现开发环境前端跨域

    vue2 利用网络代理axios实现前端跨域 vue.config.js 配置代理 vue文件 实现开发环境跨域请求 测试生产环境跨域跳转 https://blog.csdn.net/weixin_43858851/article/details/137518111?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22137518111%22%2C%22source%22%3A%22weixin_43858851%22%7D

    2024年04月12日
    浏览(37)
  • 【Vue】Vue2创建移动端项目实战教程,创建移动端项目保姆级教程,设置axios,utils工具包,vue.fonfig.js配置项 (下)

    这里是创建移动端项目 【Vue】Vue2.x创建项目全程讲解,保姆级教程,手把手教,Vue2怎么创建项目(上) 【Vue】Vue2创建移动端项目实战教程,创建移动端项目保姆级教程,接上一篇创建Vue2项目(中) 【Vue】Vue2创建移动端项目实战教程,创建移动端项目保姆级教程,设置ax

    2024年02月13日
    浏览(37)
  • vue中axios的二次封装——vue 封装axios详细步骤

        api统一管理,不管接口有多少,所有的接口都可以非常清晰,容易维护。     通常我们的项目会越做越大,页面也会越来越多,如果页面非常的少,直接用axios也没有什么大的影响,那页面组件多了起来,上百个接口呢,这个时候后端改了接口,多加了一个参数什么的呢

    2024年02月02日
    浏览(33)
  • 【Vue2】 axios库

    认识Axios库 为什么选择Axios库 在游览器中发送XMLHttpRequests请求 在node.js中发送http请求 支持Promise API 拦截请求和响应 转换请求和响应数据 支持多种请求 安装Axios axios发送请求 常见的配置选项 简单请求 get或者post请求 post的参数第二个是data 也可以这样写 可以给Axios设置公共的

    2024年02月11日
    浏览(27)
  • 开始学习Vue2(axios和Vuex)

    一、 Axios 1、 Axios  简介 Axios   是一个基于  promise   网络请 求库 ,作用于 node.j s  和浏   览器中。它是  isomorphic  的(即同一套代码可以运行在浏览器 和 node.js 中)。在服务端它使用原生  node.js http  模块,  而在 客户端   (浏览端)   则使用   XMLHttpRequests。 2、 Axios  的

    2024年02月20日
    浏览(26)
  • vue封装axios

    (4条消息) Vue——axios的二次封装_前端杂货铺的博客-CSDN博客 1.下载axios依赖包 2.在src目录下新建utils文件夹,在utils文件夹下新建request.js文件  3.request.js 方式1:(最常用使用) 在src目录下新建api文件夹,在api文件夹中新建index.js用于存放请求接口 api目录下的index.js 页面使用:

    2024年02月11日
    浏览(24)
  • vue3【使用axios并封装axios请求】

    第一步:安装axios 第二步:编写请求文件 新建request.js 简单的axios封装,里面相关提示信息,自己可以引入element-plus去添加

    2024年02月04日
    浏览(42)
  • vue 对axios进行封装

    token配置、中英文配置、对所有接口统一设置防抖、对所有post接口统一设置节流  废话少说直接上代码 request.js  api.js: 使用:     

    2024年02月09日
    浏览(27)
  • Vue——axios的二次封装

    在 Vue 中,发送请求一般在 created 钩子中,当然放在 mounted 钩子中也没问题。 以下请求的前提都是安装了 axios,并且 import axios from \\\'axios\\\' 成功导入 Axios官网链接 get 请求传参,在地址里面通过 ?xxx=123 的形式 post 请求传参,在第二个参数里面传递 请求配置里面可以设置很多属性

    2024年02月11日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包