Vue项目API接口封装的超详细解答

 更新时间:2022年09月19日 11:16:17   作者:one.158  
在前端vue的开发中,有一点是必须要做的,那就是将所有的API接口封装起来,因为从开发到最终上线的过程中,API是需要经常更换的,下面这篇文章主要给大家介绍了关于Vue项目API接口封装的相关资料,需要的朋友可以参考下

前言

我们在开发的过程中,时常需要去访问服务器,然而每个请求都需要重新去axios访问,过于麻烦,所以我们在这封装了一个进行请求的方法,并且将接口api化,需要使用时直接引入api方法,使用起来非常的简单。

一、axios是什么?

axios 是一个基于Promise 的 HTTP 库,可以用在浏览器和 node.js 中。

axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,本质上也是对原生XHR的封装,只不过它是Promise的实现版本,符合最新的ES规范,有以下特点:

  • 从浏览器中创建 XMLHttpRequests
  • 从 node.js 创建 http 请求
  • 支持 Promise API
  • 拦截请求和响应
  • 转换请求数据和响应数据
  • 取消请求
  • 自动转换 JSON 数据
  • 客户端支持防御 XSRF

二、API接口封装步骤

1.创建拦截器(Interceptor.js)

代码如下(示例):

import axios from "axios";//原生的axios
//用来拦截用的
axios.defaults.headers.post["Content-Type"] = "application/json;charset=utf-8";
//创建一个单例
const http= axios.create({
  baseURL:'接口的前半部分加端口',
  timeout:5000,//响应时间
  // headers:{"Content-Type":"application/json;charset=utf-8"},
})
 
//拦截器  -请求拦截
http.interceptors.request.use(config=>{
  //部分接口需要token
  let token=localStorage.getItem('token');
  if(token){
    config.headers.token=token;
    // config.headers ={
      // 'token':token
    // }
  }
  return config;
},err=>{
  return Promise.reject(err)
})
 
//拦截器  -响应拦截
http.interceptors.response.use(res=>{
  if(res.data.code===2000){
    return Promise.resolve(res.data)
    //这里读者们可以根据服务器返回的数据去自行修改
  }else{
    return Promise.reject(res.data)
  }
},err=>{
  return Promise.reject(err)
});
 
//整体导出
export default http;
 

2.创建存放API的文件(http.js)

代码如下(示例):

//将拦截器整体导入
import request from '@/Interceptor.js'//导入已经写好的拦截器
 
// 封装所有的API接口
 
export function Login(params){
  console.log(params)
  return request({
    url:'/administrator/login',
    method :'post',
    params:params,
  })
}
 
export function getRoles(params={}){
  return request({
    url:'/Roles/select',
    method :'post',
    params:params,
  })
}
 

3.使用方法

代码如下(示例):

import { Login } from "@/api/http.js" //按需要去引入方法
 
    Login(Requestparameters).then((res) => {
            if (res.code === 2000) {
              this.$message({
                message: '登录成功!',
                type: 'success',
                duration: 1500
              });
              setTimeout(() => {
                let token= res.data.token;
                localStorage.setItem("token",token);   
                //有需要存token的就可以在这里存储了
                this.$router.push('/index');    
                //这里就可以转到指定的路由
              }, 1550);
            } else {
              this.$message({
                type: 'info',
                message: res.message,
                duration: 1500
              });
            }
          }).catch((err) => {
            console.log(err)
          })

总结

到此这篇关于Vue项目API接口封装的文章就介绍到这了,更多相关Vue项目API接口封装内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue实现表单录入小案例

    vue实现表单录入小案例

    这篇文章主要为大家详细介绍了vue实现表单录入小案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • Vue WatchEffect函数创建高级侦听器

    Vue WatchEffect函数创建高级侦听器

    watchEffect传入的函数会被立即执行一次,并且在执行的过程中会收集依赖;其次,只有收集的依赖发生变化时,watchEffect传入的函数才会再次执行
    2023-03-03
  • 解决Can''t find variable: SockJS vue项目的问题

    解决Can''t find variable: SockJS vue项目的问题

    这篇文章主要介绍了解决Can't find variable: SockJS vue项目的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • Vue组件库Element-常见组件表格示例代码

    Vue组件库Element-常见组件表格示例代码

    对于Element组件的使用,最主要的就是明确自己想要达到的效果,从官网中将对应代码复制粘贴即可,最重要的是要读懂不同组件官网中提供的文档,以便实现自己想要的效果,本文给大家介绍Vue组件库Element-常见组件表格,感兴趣的朋友一起看看吧
    2023-10-10
  • Vue3学习笔记之依赖注入Provide/Inject

    Vue3学习笔记之依赖注入Provide/Inject

    provide和inject可以实现嵌套组件之间进行传递数据,这两个函数都是在setup函数中使用的,下面这篇文章主要给大家介绍了关于Vue3学习笔记之依赖注入Provide / Inject的相关资料,需要的朋友可以参考下
    2023-05-05
  • Vue如何基于vue-i18n实现多国语言兼容

    Vue如何基于vue-i18n实现多国语言兼容

    这篇文章主要介绍了Vue如何基于vue-i18n实现多国语言兼容,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • vue中axios实现数据交互与跨域问题

    vue中axios实现数据交互与跨域问题

    这篇文章主要介绍了vue中axios实现数据交互与跨域问题,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-05-05
  • vue-cli创建的项目中的gitHooks原理解析

    vue-cli创建的项目中的gitHooks原理解析

    这篇文章主要介绍了vue-cli创建的项目中的gitHooks原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Vue3动态使用KeepAlive组件的实现步骤

    Vue3动态使用KeepAlive组件的实现步骤

    在 Vue 3 项目中,我们有时需要根据路由的 meta 信息来动态决定是否使用 KeepAlive 组件,以控制组件的缓存行为,所以本文给大家介绍了Vue3动态使用KeepAlive组件的实现步骤,通过代码示例讲解的非常详细,需要的朋友可以参考下
    2024-11-11
  • Vue中Element UI组件库使用方法详解

    Vue中Element UI组件库使用方法详解

    ElementUI是Vue的UI框架,提供了丰富的组件,方便快速开发页面,本文详细介绍了ElementUI的安装、使用方法以及常见组件的说明,包括基础组件、布局组件、选择框组件、输入框组件、下拉框组件等,需要的朋友可以参考下
    2024-11-11

最新评论