axios二次封装

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

目录

第一章、前言

1.1 axios是什么

1.2 axios二次封装的原因

1.3 axios的特性

第二章、axios的二次封装

2.1 axios安装

2.2 axios封装一般步骤

2.3 axios封装常用的配置项

2.4 使用封装的axios

第一章、前言

1.1 axios是什么

  • 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,简单的理解就是ajax的封装
  • 在使用Vue.js框架开发前端项目时,会经常发送ajax请求服务端接口,在开发过程中 需要对axios进一步封装,方便在项目中的使用

1.2 axios二次封装的原因

  • 进行二次封装主要使用到的就是两个拦截器:
  • 请求拦截器:在发送请求之前处理一些公共的业务
  • 响应拦截器:当服务器数据响应之后又处理一些事情

1.3 axios的特性

  • 从浏览器中创建 XMLHttpRequest
  • 从 node.js 发出 http 请求
  • 支持 Promise API
  • 拦截请求和响应
  • 转换请求和响应数据
  • 取消请求
  • 自动转换JSON数据

第二章、axios的二次封装

2.1 axios安装

npm install axios -S

2.2 axios封装一般步骤

  • 在项目根目录的src文件夹下新建一个utils文件夹(utils文件夹常用于放其他js插件)

axios二次封装,Vue,前端,vue.js,ajax

  • 在文件夹下放request.js文件,在request.js中首先导入axios

axios二次封装,Vue,前端,vue.js,ajax

 axios二次封装,Vue,前端,vue.js,ajax

  • 然后设置属性,比如baseURL(公共地址)和 timeOut (超时时间)
  • 还可以设置响应拦截和请求拦截,在请求拦截中经常设置loading动画的开启和配置请求头的token
  • 在响应拦截中可以关闭loading和根据后端返回的状态码检测token是否有效
  • 最后把requests(注意这里是我们创建的axios对象)暴露出来

大致代码:

// 对于axios进行二次封装
import axios from "axios";
// 引入进度条
import nprogress from "nprogress";
// 引入进度条样式
import "nprogress/nprogress.css"
//在当前模块引入store 
import store from '@/store'

//1、利用axios对象的方法create,去创建一个axios实例
// 2、request就是axios,只不过稍微配置一下
const requests = axios.create({
    // 配置对象
    // 基础路径,发请求时,路径会出现api
    baseURL:'/code',
    // 代表请求时间
    timeout:5000
})
// 请求拦截器:在请求之前,请求拦截器可以检测到,在发出去之前做一些事
requests.interceptors.request.use((config)=>{
    // 进度条开始动
    nprogress.start()
    // console.log(1,store)
    if(store.state.detail.uuid_token){
        //请求一个头字段id
        config.headers.userTempId = store.state.detail.uuid_token
    }
    //判断需要携带token带给服务器、
    if(store.state.user.token){
        config.headers.token = store.state.user.token
    }
    return config;
});
// 响应拦截器
requests.interceptors.response.use((res)=>{
    // 成功的回调函数
    // 进度条结束
    nprogress.done()
    return res.data;
    },(error)=>{
        // 失败的回调函数
        return Promise.reject(new Error('faile'));
})
// 暴露
export default requests

2.3 axios封装常用的配置项

axios.create、axios.interceptors.request.use、axios.interceptors.response.use

Vue.js Ajax(axios) | 菜鸟教程

2.4 使用封装的axios

  • 在文件api根目录index.js文件使用:
//引入
import requests from "./request.js"; //路劲自己修改
 
export const login = (params) => {
    return requests({
        url: "接口路径",
        method: "post" ,   //后端给什么写什么
        data: params
    })
}

然后页面引用——

这里用到的就是vue中的store存储数据(注意这里只是示范,登录获取的token信息一般会永久存储在浏览器):

import {login} from '@/api'

const state ={
    //用户登录信息/token
    userLogin:"",
}
const mutations={
    GATLOGIN(state,value){
        state.userLogin = value
    },
}
const actions={
    async getLogin({commit}){
         //这里的data(用户登录账号密码)需要传参
         let result = await login(data);
         //console.log(result)
         if(result.code === 200){
             commit("GATLOGIN",result.data)
             //console.log(result.data)
         }
    },
}
const getters={
}
export default{
    state,
    mutations,
    actions,
    getters
}
  • 如果目标是与数据库打通前后端(这里里面的传参数据是为了方便描述写的,具体需要分析)
axios.get("http://localhost:8080/api/userLogin/userLoginlist(url路径)",{
   params:{
      userPassword:this.ruleForm.pass,
      userId:this.userId
  }
}).then(
  res=>{
      this.$message({
           message:'用户信息修改成功',
           type:'success'
      })
  },
  error=>{
      console.log("b",error.message)
  }
)
axios.post('/axios-server',{
        username:'admin',//请求体
        password:'admin'
    },{
    params:{
        id:100,
        vip:7
    },
})

axios请求:

AJAX及其相关知识应用(很详细)_❆VE❆的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-727321.html

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

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

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

相关文章

  • 二次封装ajax和axios

    2024年02月14日
    浏览(31)
  • 【vue2小知识】实现axios的二次封装

    🥳博       主: 初映CY的前说(前端领域) 🌞个人信条: 想要变成得到,中间还有做到! 🤘 本文核心 :在vue2中实现axios的二次封装 目录 一、平常axios的请求发送方式 二、axios的一次封装 三、axios的二次封装  四、总结 【前言】我们在使用axios发送请求的时候,如果是直

    2024年02月01日
    浏览(32)
  • 个人博客-SpringBoot+Vue3项目实战(6)- 二次封装Axios

    在上文中,我们封装了统一的后端数据返回结果,有了标准化的接口数据,我们就可以针对它,在前端发送接收时,进行预处理。 通常在一个企业级或者个人开源的项目中, Axios 会被二次封装。 二次封装的好处有哪些呢? 统一 url 配置 统一 api 请求 request (请求)拦截器,例

    2024年02月06日
    浏览(44)
  • Vue3和TypeScript下基于Axios的二次封装教程

    学习如何在Vue3项目中使用TypeScript和Axios进行二次封装,实现更灵活的网络请求处理。详细教程包括拦截器设置和类型扩展。

    2024年02月05日
    浏览(60)
  • 【Vue项目笔记心得】postman接口测试、axios二次封装、api接口统一管理

    1、postman接口测试 下载地址:Download Postman | Get Started for Free   2、axios二次封装 (1)为什么进行二次封装axios? 请求拦截器、响应拦截器: 请求拦截器 :可以在发请求之前可以处理一些业务 响应拦截器 :当服务器数据返回以后,可以处理一些事情 安装axios: npm install ax

    2023年04月08日
    浏览(35)
  • 前端开发中的ajax请求、axios封装

    目录 浏览器http请求 同步 js标签跨域、url 异步ajax、websock协议 ajax是异步的技术术语,最早的api是xhr(XMLHttpRequest) fetch es6 api axios 封装axios(无论用requst还是axios请求都会生效) src/utils/request.ts请求/响应拦截器封装 ts post请求request.post(url)和 通用请求request({url,method:\\\'post\\\'})对象

    2024年02月11日
    浏览(34)
  • 前端(二十七)——封装指南:Axios接口、常用功能、Vue和React中的封装技术

    😊博主:小猫娃来啦 😊文章核心: 前端封装指南:Axios接口、常用功能、Vue和React中的封装技术 在我们前端开发当中,封装是种将代码和功能组织起来以便重复使用的方式。它可以使开发人员更高效地编写、维护和管理代码。本文将探讨前端封装的定义、重要性以及在Web开

    2024年02月05日
    浏览(33)
  • 前端vue3分享——项目封装axios、vite使用env环境变量

    大家好,我是yma16,本文分享关于前端vue3分享——项目封装axios、使用env环境变量。 该系列往期文章: csdn新星计划vue3+ts+antd赛道——利用inscode搭建vue3(ts)+antd前端模板 认识vite_vue3 初始化项目到打包 什么是axios axios是一个流行的JavaScript库,用于在浏览器和Node.js环境中进行H

    2024年02月07日
    浏览(49)
  • 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封装请求数据,教会你封装教会你请求数据 简单易懂,轻松学会axios封装请求数据 看一眼就会 手把手教会

    2、完成上面的步骤还不够,还需要再创建一个文件夹api,然后在文件夹里面创建自定义的文件名(我创建的是cartApi.js)文件名根据自己的需求命名 下面就是根据自己的请求接口以及数据参数请求,下面的请求是一些常见的post、get请求以及传参啥的(仅供参考,可以参考下面

    2024年02月03日
    浏览(30)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包