vue3封装接口(自测可用)

2024-02-22 21:44

本文主要是介绍vue3封装接口(自测可用),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

注:这个是js版本不是ts注意

在实际的项目实战中如果我们不对接口加以管理,整篇看着就很乱,这个时候我们就要用到接口封装了。

废话不多说直接上代码!!!

首先是request.js

import axios from "axios";// 使用环境变量来设置基础URL
const baseURL = process.env.VUE_APP_API_BASE_URL || "接口前缀http://xxxxxxxxxxxxxx";const service = axios.create({baseURL: baseURL,timeout: 5000,headers: {"Content-type": "application/json;charset=utf-8"}
});service.interceptors.request.use(config => {const token = localStorage.getItem("token");if (token) {config.headers['Authorization'] = 'Bearer ' + token;}return config;
}, error => {console.error("Request error: ", error);return Promise.reject(error);
});service.interceptors.response.use(response => {if (response.status === 200) {return response.data;} else {// 可以根据需要添加更多的错误处理console.error("Response error: ", response);return Promise.reject(new Error("Error with status code " + response.status));}
}, error => {// 对常见的HTTP错误进行处理if (error.response) {// 请求已发出,服务器回复状态码不在2xx范围console.error("Error status: ", error.response.status);// 根据返回的状态码进行不同的处理// 例如: if (error.response.status === 401) { // 处理登录过期 }} else {// 服务器连回应都没有返回console.error("Network error: ", error);}return Promise.reject(error);
});export default service;

其次api.js

post方法

// 我要用到的一些接口
import service from "@/request/index";
// 引入接口
// 如果在 JavaScript 中引入接口不需要进行类型标注
// import { ILoginData } from "@/type/login";// 登录接口
export function index(data) {return service({url: "/index/index",method: "POST",data: data});
}

get方法

export function index(queryParams) {return service({url: "/index/index",method: "GET",params: queryParams});
}

然后home.vue

到这里就非常简单了,直接import引入相应的名称在使用就可以了

<template><div><div @click="inds">加载数据</div></div>
</template><script setup>
import { ref } from 'vue';
import { index } from "@/request/api";const inds = async () => {try {const res = await index();console.log(1, res);} catch (err) {console.error(2, err);} finally {console.log(3);}
};
</script>

最后封装接口请求数据

首页不需要参数,可以直接请求,那么需要参数的怎么办呢?有方法

这两种方法都行没什么不一样的

方法一

<script setup>
import { ref } from 'vue';
import { index } from "@/request/api";const inds = async () => {try {let id = 1119;//比如接口需要id就声明id,如果是name就写nameconst res = await index({id});console.log(1, res);} catch (err) {console.error("失败", err);} 
};
</script>

方法二

<script setup>
import { ref } from 'vue';
import { index } from "@/request/api";const inds = async () => {try {const res = await index({id:1119});console.log(1, res);} catch (err) {console.error("失败", err);} 
};
</script>

到这里就结束了感谢观看,有疑问可以在评论区写出来。

这篇关于vue3封装接口(自测可用)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/736588

相关文章

Java实现Excel与HTML互转

《Java实现Excel与HTML互转》Excel是一种电子表格格式,而HTM则是一种用于创建网页的标记语言,虽然两者在用途上存在差异,但有时我们需要将数据从一种格式转换为另一种格式,下面我们就来看看... Excel是一种电子表格格式,广泛用于数据处理和分析,而HTM则是一种用于创建网页的标记语言。虽然两

详解Java如何向http/https接口发出请求

《详解Java如何向http/https接口发出请求》这篇文章主要为大家详细介绍了Java如何实现向http/https接口发出请求,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用Java发送web请求所用到的包都在java.net下,在具体使用时可以用如下代码,你可以把它封装成一

Java后端接口中提取请求头中的Cookie和Token的方法

《Java后端接口中提取请求头中的Cookie和Token的方法》在现代Web开发中,HTTP请求头(Header)是客户端与服务器之间传递信息的重要方式之一,本文将详细介绍如何在Java后端(以Sp... 目录引言1. 背景1.1 什么是 HTTP 请求头?1.2 为什么需要提取请求头?2. 使用 Spr

vue解决子组件样式覆盖问题scoped deep

《vue解决子组件样式覆盖问题scopeddeep》文章主要介绍了在Vue项目中处理全局样式和局部样式的方法,包括使用scoped属性和深度选择器(/deep/)来覆盖子组件的样式,作者建议所有组件... 目录前言scoped分析deep分析使用总结所有组件必须加scoped父组件覆盖子组件使用deep前言

VUE动态绑定class类的三种常用方式及适用场景详解

《VUE动态绑定class类的三种常用方式及适用场景详解》文章介绍了在实际开发中动态绑定class的三种常见情况及其解决方案,包括根据不同的返回值渲染不同的class样式、给模块添加基础样式以及根据设... 目录前言1.动态选择class样式(对象添加:情景一)2.动态添加一个class样式(字符串添加:情

centos7基于keepalived+nginx部署k8s1.26.0高可用集群

《centos7基于keepalived+nginx部署k8s1.26.0高可用集群》Kubernetes是一个开源的容器编排平台,用于自动化地部署、扩展和管理容器化应用程序,在生产环境中,为了确保集... 目录一、初始化(所有节点都执行)二、安装containerd(所有节点都执行)三、安装docker-

React实现原生APP切换效果

《React实现原生APP切换效果》最近需要使用Hybrid的方式开发一个APP,交互和原生APP相似并且需要IM通信,本文给大家介绍了使用React实现原生APP切换效果,文中通过代码示例讲解的非常... 目录背景需求概览技术栈实现步骤根据 react-router-dom 文档配置好路由添加过渡动画使用

使用Vue.js报错:ReferenceError: “Vue is not defined“ 的原因与解决方案

《使用Vue.js报错:ReferenceError:“Vueisnotdefined“的原因与解决方案》在前端开发中,ReferenceError:Vueisnotdefined是一个常见... 目录一、错误描述二、错误成因分析三、解决方案1. 检查 vue.js 的引入方式2. 验证 npm 安装3.

vue如何监听对象或者数组某个属性的变化详解

《vue如何监听对象或者数组某个属性的变化详解》这篇文章主要给大家介绍了关于vue如何监听对象或者数组某个属性的变化,在Vue.js中可以通过watch监听属性变化并动态修改其他属性的值,watch通... 目录前言用watch监听深度监听使用计算属性watch和计算属性的区别在vue 3中使用watchE

python解析HTML并提取span标签中的文本

《python解析HTML并提取span标签中的文本》在网页开发和数据抓取过程中,我们经常需要从HTML页面中提取信息,尤其是span元素中的文本,span标签是一个行内元素,通常用于包装一小段文本或... 目录一、安装相关依赖二、html 页面结构三、使用 BeautifulSoup javascript