封装http并挂载到全局
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2020-06-21 闭包
2020-06-21 高阶函数
2020-06-21 js严格模式
2020-06-21 改变函数内this指向方法——call、apply、bind