代码模版-vue使用axios调用请求

news/2024/4/25 7:35:08/文章来源:https://blog.csdn.net/abcnull/article/details/131733541

文章目录

  • 简介
  • 步骤一:安装 axios 依赖
  • 步骤二:自己配置请求 request
  • 步骤三:在 main.js 中指定 request
  • 步骤四:其他组件的 js 的请求

简介

vue 常常使用 axios 包来调用请求

步骤一:安装 axios 依赖

cnpm install --save axios

步骤二:自己配置请求 request

在 src/ 新建 utils,其中新建 requests.js

import axios from "axios"
import {ElLoading, ElMessage} from "element-plus";const contentTypeForm = "application/x-www-form-urlencoded;charset=utf-8"
const contentTypeJson = "application/json"
const contentTypeFile = "multipart/form-data"// 配置请求,这个 config 有请求的相关信息
const request = (config) => {// 初始化 contentType 和 paramslet contentTypelet paramsif (config.dataType === "json") {contentType = contentTypeJson} else if (config.dataType === "form") {contentType = contentTypeForm} else if (config.dataType === "file") {contentType = contentTypeFilelet param = new FormData()for (let key in config.params) {param.append(key, config.params[key])}params = param} else {contentType = contentTypeJson}// 配之1: 配置请求实例const instance = axios.create({baseURL: "api",timeout: 10 * 1000,headers: {"Content-Type": contentType,"X-Requested-With": "XMLHttpRequest",}})// 配置2: request 发送前拦截器let loading = nullinstance.interceptors.request.use((config) => {// 如果 showLoading 为 true 就用 element plus 中的家在样式,但是一直存在直到后面 resp 再关闭if (config.headers.showLoading) {// 加载中样式,拷贝自 element plus 官网loading = ElLoading.service({lock: true,text: '加载中...',background: 'rgba(0, 0, 0, 0.7)',})}return config},(error) => {if (loading) {// 如果 loading 存在就把加载样式关了loading.close()}// 然后再输出 error 提醒样式,拷贝自 element plus 官网ElMessage({showClose: true,message: '发送请求失败',type: 'error',})return Promise.reject("发送请求失败")},)// 配置3: response 响应前拦截器instance.interceptors.response.use((response) => {// 响应前 close 加载样式if (loading) {loading.close()}const responseData = response.data// 做一些响应码的判断,一般响应结构/*code: 0,msg: "success",data: {},*//*if (responseData.code === xxx) {// todo: 该响应码后的操作return Promise.reject(responseData.message)} else if (responseData.code === yyy) {// todo: 该响应码后的操作return Promise.reject(responseData.message)}*/// 正常情况下返回响应数据return responseData},(error) => { // 服务 504 或者 404 了,网络有问题或者服务关闭了if (loading) {loading.close()}return Promise.reject("响应异常")},)// 配置4: 配置发送 post 请求return instance.post(config.url, params).catch((error) => {// 这里用了 element plus 样式,展现响应后样式ElMessage({showClose: true,message: error,type: 'error',})return null})
}export default request

步骤三:在 main.js 中指定 request

src/main.js 中添加

import { createApp } from 'vue'
import App from './App.vue'import request from "./utils/request";const app = createApp(App)// app.use(...)// 这里配置上使用 axios 自己配置 export 出来的 request
app.config.globalProperties.Request = request// app 绑定

步骤四:其他组件的 js 的请求

在其他应用组件中请求,就会用到这个 request

import getCurrentInstance from "vue"
const proxy = getCurrentInstance()// @click 事件触发
const foo = () => {// function1 执行,异步一个函数async () => {// todo sth.// wait 得在 async 中,这里进行请求,可以注意前面配置的 axios req 会生效let result = await proxy.Request({url: "",params: {account: "",password: "",checkCode: "",},})}// function2 执行
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_331151.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

静态库 的制作与使用

文章目录 重要命令程序组成静态库制作流程静态库的使用 gcc main.c -o APP -I(i) 头文件路径 -l(L) 库名字(xxx) -L 库路径 重要命令 gcc -o -I(大写i) -l(小写L) -L cp:复制文件 -r 递归,用于复制文件夹所有文件 mv:移动文件 程…

【ArcGIS Pro二次开发】(46):要素类从上到下、从左到右排序

要素类经过编辑之后,【OBJECTID】字段会变得不规律。应部分网友要求,做了这个从上到下、从左到右排序的工具。 不过后来在ArcGIS Pro中发现了一个【排序】工具,已经可以完美实现这个功能需求,发现自己做了个白工。 不过做了不能白…

【统计函数3】——excel常见函数

相关数据资料来源于网易 函数一览: rank、rand、randbetween、floor、int rank函数: 求某单元格在某区域内的排名 RANK(数值,引用区域,降序0/升序1)范围多指定: 分开的范围之间可用逗号隔开,最后再用一个小括号括起来。F4可以快速锁定行和列。…

20230714----重返学习-DOM-diff算法-构建工具-包管理工具-Vite基本使用-Vue3新特性

day-112-one-hundred-and-twelve-20230714-DOM-diff算法-构建工具-包管理工具-Vite基本使用-Vue3新特性 DOM-diff算法 vue2中diff算法 同级比对,跨级比对性能差。而且采用的方式是递归比对,更差一点。根节点只能有一个,比对的时候会从根节…

MySql5.6版本开启慢SQL功能

文章目录 1引言1.1目的1.2注意点说明1.3 操作步骤1.3.1 临时生效操作步骤1.3.2 永久生效操作步骤1.3.3 按日期生成日志文件1.3.4 执行成功后验证功能是否开启 1.4 慢SQL日志记录内容介绍1.5 Shell脚本 1引言 1.1目的 开启 MySQL 的慢查询日志(Slow Query Log&…

【Distributed】分布式Ceph存储系统

文章目录 一、存储基础1. 单机存储设备1.1 DAS1.2 NAS1.3 SAN1.4 单机存储的问题1.5 商业存储解决方案 2. 分布式存储(软件定义的存储 SDS )分布式存储的类型 3. Ceph 简介4. Ceph 优势5. Ceph 架构6. Ceph 核心组件7. OSD 存储后端7.1 Filestore7.2 Blu…

微服务架构+创建微服务工程(商品/订单)

目录 1.微服务架构 1.1.单体应用架构 1.2.微服务应用 1.3 微服务架构的优势 1.4.微服务架构的缺点(挑战) 1.5. SpringCloud与微服务关系 1.6.SpringBoot和SpringCloud关系 2. 创建微服务工程 2.1.数据库 2.2.搭建父工程 2.2 创建公共模块 2.3.商品系统 2.4.订单微…

在Linux中使用curl访问EasyCVR页面,返回报错Unauthorized是什么原因?

EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力,比如:视…

检测到错误页面web应用服务器版本信息泄露

详细描述 Web服务器未能正确处理异常请求导致Web服务器版本信息泄露,攻击者收集到服务器信息后可进行进一步针对性攻击。 解决办法 临时修复建议如下: 1、关闭web服务器错误提示。 2、关闭运行平台的错误提示。 3、建立错误机制,不要把真实…

力扣 198.打家劫舍【中等】

198.打家劫舍 1 题目2 思路3 代码4 结果 1 题目 题目来源:力扣(LeetCode)https://leetcode.cn/problems/house-robber 题目:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃…

优化产品知识库的 SEO 技巧

在当今数字化的商业环境中,为产品知识库进行搜索引擎优化(SEO)是至关重要的。随着用户越来越倾向于通过搜索引擎获取信息,优化产品知识库可以帮助你的企业在竞争激烈的市场中脱颖而出。 通过改进SEO,你可以帮助用户找到…

K8S V1.25.11安装以及踩坑之旅

说明: 系统:centos9 stream K8S版本:V1.25.11(不要装最新的,后续的可视化界面安装的是个坑,基本上不支持,时间:2023年7月14日) Docker版本:20.10.16 (不要…

4.postgresql--rollup,grouping sets,cube

PostgreSQL ROLLUP 是group by 的子句,是生成多个分组集合的快捷功能。与Cube子句的差异是,rollup 不生成基于特定列所有可能的分组集合,生成分组集合为其子集。 ROLLUP假设输入列之间存在层次结构,从而生成有意义的所有分组集合…

力扣21. 合并两个有序链表

题目 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 链接:21. 合并两个有序链表 - 力扣(LeetCode) 题解 设置两个指针head和tail,head用来指向新链表的头结点,tail…

第G1周:生成对抗网络(GAN)入门

目录 一、课题背景和开发环境二、理论基础1.生成器2. 判别器3. 基本原理 三、前期准备工作1. 定义超参数2.下载数据3. 配置数据 四、定义模型1. 定义鉴别器2. 定义生成器 五、训练模型1. 创建实例2. 训练模型3. 保存模型 🍨 本文为🔗365天深度学习训练营…

prometheus调整默认数据存储时间

调整kubernetes部署的prometheus数据存储时间 由于prometheus是用kuberentes部署的,没办法像传统部署方式那种直接在启动参数增加存储时间的参数。需要在configmap里或者在deployment里添加,我这里使用的方式是在deployement里添加调整存储时间的参数。…

React native 已有项目升级兼容web

基础 概念 | webpack 中文文档 | webpack 中文文档 | webpack 中文网 深入理解Webpack及Babel的使用 - 掘金 Introduction to React Native for Web // React Native for Web Webpack 是一个现代的 JavaScript 应用程序的静态模块打包工具,它将应用程序所依赖的各…

Star History 月度开源精选|2023 年 6 月

上一期 Star History 月度精选是写给市场、运营人员的,而这一期回归到 DevTools 类别,我们六月发现了好一些开发者可以用的不错工具! AI Getting Started 还记得 Supabase “Build in a weekend” 的广告词吗!AI Getting Started…

AIGC文生图:使用ControlNet 控制 Stable Diffusion

1 ControlNet介绍 1.1 ControlNet是什么? ControlNet是斯坦福大学研究人员开发的Stable Diffusion的扩展,使创作者能够轻松地控制AI图像和视频中的对象。它将根据边缘检测、草图处理或人体姿势等各种条件来控制图像生成。 论坛地址:Adding…

Docker安装Rabbitmq超详细教程

🚀 Docker安装Rabbitmq保姆级教程 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介&#xff1…