https://www.bilibili.com/video/BV1BJ411W7pX?p=32

具体使用:https://blog.csdn.net/weixin_44763569/article/details/107267124

1)封装前的接口写法

2)封装后的写法

async, await用法:

普通用法:

integral() {
this.$myRequest({
url: '/mall/user-integral',
}).then(res => {
this.integrall = res.data.integral
})
}

3)api.js封装:

 1 // 全局请求路径,也就是后端的请求基准路径
2 const BASE_URL = 'http://192.168.31.39:8899/'
3 // 同时发送异步代码的次数,防止一次点击中有多次请求,用于处理
4 let ajaxTimes=0;
5 // 封装请求方法,并向外暴露该方法
6 export const myHttp = (options)=>{
7 // 解构请求头参数
8 let header = {...options.header};
9 // 当前请求不是登录时请求,在header中加上后端返回的token
10 if(options.url != 'login'){
11 header["client-identity"] = uni.getStorageSync('session_id');
12 }
13 ajaxTimes++;
14 // 显示加载中 效果
15 uni.showLoading({
16 title: "加载中",
17 mask: true,
18 });
19 return new Promise((resolve,reject)=>{
20 uni.request({
21 url:BASE_URL+options.url,
22 method: options.method || 'POST',
23 data: options.data || {},
24 header,
25 success: (res)=>{
26 resolve(res)
27 },
28 fail: (err)=>{
29 reject(err)
30 },
31 // 完成之后关闭加载效果
32 complete:()=>{
33 ajaxTimes--;
34 if(ajaxTimes===0){
35 // 关闭正在等待的图标
36 uni.hideLoading();
37 }
38 }
39 })
40 })
41 }

4)main.js调用:

import { myHttp } from './util/api.js';
Vue.prototype.$http = myHttp;

https://blog.csdn.net/renxiaoxing55/article/details/112647858

封装http并挂载到全局的更多相关文章

  1. vue组件挂载到全局方法

    在最近的项目中,使用了bootstrap-vue来开发,然而在实际的开发过程中却发现这个UI提供的组件并不能打到我们预期的效果,像alert.modal等组件每个页面引入就得重复引入,并不像eleme ...

  2. uni-app 环境配置,uni.request封装,接口配置,全局配置,接口调用的封装

    1.环境配置 (可参考uni-官网的环境配置) common文件夹下新建config.js let url_config = "" if(process.env.NODE_ENV ...

  3. 【vue3】封装自定义全局插件

    [vue3]封装自定义全局插件 原vue2方法 main.js import Vue from 'vue' import App from './App.vue' import router from ...

  4. Vue3学习与实战 · 全局挂载使用Axios

    在vue2中会习惯性的把axios挂载到全局,以方便在各个组件或页面中使用this.$http请求接口.但是在vue3中取消了Vue.prototype,在全局挂载方法和属性时,需要使用官方提供的gl ...

  5. 大熊君大话NodeJS之------Global Objects全局对象

    一,开篇分析 在上个章节中我们学习了NodeJS的基础理论知识,对于这些理论知识来说理解是至关重要的,在后续的章节中,我们会对照着官方文档逐步学习里面的各部分模块,好了该是本文主角登台亮相的时候了,G ...

  6. 封装Vue组件的一些技巧

    封装Vue组件的一些技巧 本文同步在个人博客shymean.com上,欢迎关注 写Vue有很长一段时间了,除了常规的业务开发之外,也应该思考和反思一下封装组件的正确方式.以弹窗组件为例,一种实现是在需 ...

  7. Vue-axios 在vue cli中封装

    common/post.js import axios from 'axios' // 引入axios import qs from 'qs' // 引入qs axios.defaults.baseU ...

  8. 【转】 实现 Cocos2d-x 全局定时器

    转自:http://www.tairan.com/archives/3998 cocos2d-x 中有自己的定时器实现,一般用法是在场景,层等内部实现,定时器的生命周期随着它们的消亡而消亡,就运行周期 ...

  9. Nuget调用简单封装.

    1. 项目引用Dapper作为直接访问, 为了使用方便, 封装一下.达到效果: - 数据库连接配置在webconfig.xml中.  - 常用调用方法封装. 调用: //可以采用单例模式. //全局实 ...

  10. Net Core集成Exceptionless分布式日志功能以及全局异常过滤

    Net Core集成Exceptionless分布式日志功能以及全局异常过滤 相信很多朋友都看过我的上篇关于Exceptionless的简单入门教程[asp.Net Core免费开源分布式异常日志收集 ...

随机推荐

  1. CPU的组成 运算器与控制器

    计算机结构 CPU结构

  2. Educational Codeforces Round 26 Problem C

    C. Two Seals time limit per test 1 second memory limit per test 256 megabytes input standard input o ...

  3. MySQL运维15-一主一从读写分离

    一.读写分离介绍 读写分离,是把数据库的读和写分开操作,以应对不同的数据库服务器.主数据库提供写操作,从数据库提供读操作,这样能有效的减轻单台数据库的压力. 二.一主一从原理 MySQL的主从复制是基 ...

  4. 【OpenCV】【Python】关于cv2.findContours()轮廓索引(编号)解析(RETR_TREE)

    在打算自己实现二维码的定位的时候,看到了相关博文的关于cv2.findContours返回的层级信息来定位三个"回"字从而达到定位二维码的目的,但是返回的hierarchy中的层级 ...

  5. 工具类图片转base64

    工具类图片转base64 import sun.misc.BASE64Encoder; import java.io.FileInputStream; import java.io.IOExcepti ...

  6. 从零玩转ShardingSphere分库分表 (概括)-shardingsphere1

    title: 从零玩转ShardingSphere分库分表 (概括) date: 2022-05-25 17:58:25.61 updated: 2022-08-22 22:59:02.624 url ...

  7. 【难受】SpirngCloud-Alibaba-nacos跨服务器访问接口的问题

    原想法:我首先准备了 一个网关 2个服务 分别将两个服务部署到不同的远程服务器当中 实现跨服务器访问接口 网关为本地调用--这里就不一一介绍了 问题 利用gateway做路由时出现服务不可用的情况,看 ...

  8. Lean大神编译的OpenWRT问题汇总

    1.初始密码为password,登录路由器后第一件事要修改默认密码 2.Lean大神编译的OpenWRT无法SSH.SFTP, 3.为了方便操作,一定要编译的时候安装TTYD,但是TTYD默认无法打开 ...

  9. 别再傻傻地用 ifconfig 查地址了!这条命令足以让你摘掉小白工程师的帽子

    大家好,我是民工哥. 众所周知,在 Linux 系统中,ip 和 ifconfig 这个两命令的功能十分相似,ifconfig 是 net-tools 中已被弃用的一个命令,很多年前就已经没有维护了. ...

  10. P7112 【模板】行列式求值

    学<高等代数>第二章的时候过来搜了搜模板,结果真搜到了.于是水一篇题解. 本文部分内容来自<高等代数>. 行列式定义 对于一个 \(n\) 阶行列式 \[A_{n \times ...