uni-app请求方法封装⑦

news/2024/11/15 20:06:51/

文章目录

    • 十一、请求方法封装
      • 实现流程
        • 一、定义公共的 http 请求方法
        • 二、创建接口文件进行公共方法的调用
        • 三、方法挂载到 Vue 原型上,供每个界面进行使用
        • 四、页面/组件内部进行方法的调用

十一、请求方法封装

为了减少代码的冗余,优化代码的可读性,及可维护性,进行请求方法的封装

实现流程

一、定义公共的 http 请求方法
  1. 创建 http.js 文件,导出一个封装好的 promise 对象(内部进行 uniCloud 调用)
export default ({ name, data = {} }) => {//name云函数的名字  data参数据/* 导出pormise对象 */return new Promise((resolve, reject) => {//开启loading弹窗uni.showLoading({})uniCloud.callFunction({name,success({ result }) {//成功的状态if (result.code === 0) {//能够拿到数据值resolve(result.data)} else {//提示框,一般是后端没有查询到数据值uni.showToast({ icon: 'none', title: result.msg })}},fail(err) {//请求失败,一般是网络的原因,后端的错误reject(err)},complete() {//完成的状态//关闭loading弹窗uni.hideLoading()},})})
}
二、创建接口文件进行公共方法的调用

在这里插入图片描述

三、方法挂载到 Vue 原型上,供每个界面进行使用
  1. 使用 webpacck 的 require.context 方法对所有的请求函数收集

require.context 是什么?

一个 webpack 的 api,通过执行 require.context 函数获取一个特定的上下文,主要用来实现自动化导入模块,在前端工程中,如果遇到从一个文件夹引入很多模块的情况,可以使用这个 api,它会遍历文件夹中的指定文件,然后自动导入,使得不需要每次显式的调用 import 导入模块

/* 批量进行文件导出 */
// . =>API目录的相对路径
// true => 是否查询子目录
// /.js/ => 正则:需要查询的文件的后缀名const requireApi = require.context(".", true, /.js$/);
console.log(requireApi.keys()); //如下图38
let module = {};//requireApi.keys  所有请求页面路径的数组
requireApi.keys().forEach((key, index) => {//如果等本身就返回if (key === "./index.js") return;Object.assign(module, requireApi(key));//requireApi(key) 是每页面请求方法的名称对象--//如下图39
});export default module;

在这里插入图片描述
在这里插入图片描述

  1. main.js 进行方法挂载
import module from './ajax/api/index.js'
Vue.prototype.$http = module;
  • 例子:
import App from "./App";
import module from "@/ajax/api/index.js";
Vue.prototype.$http = module;// #ifndef VUE3
import Vue from "vue";Vue.config.productionTip = false;
App.mpType = "app";const app = new Vue({...App,
});
app.$mount();// #endif// #ifdef VUE3
import { createSSRApp } from "vue";
export function createApp() {const app = createSSRApp(App);return {app,};
}
// #endif
四、页面/组件内部进行方法的调用
async _intiLabelList() {const labelList = await this.$http.get_label_list()this.labelList = labelList
}

http://www.ppmy.cn/news/1547267.html

相关文章

什么是UDP和TCP?有什么区别?应用场景分别都有哪些?

UDP(用户数据报协议)和TCP(传输控制协议)都是互联网协议套件的一部分,用于在网络中传输数据。它们都位于OSI模型的传输层,但两者在工作方式、可靠性和使用场景上存在显著差异。 UDP (User Datagram Protoc…

Linux各种解压命令汇总

1 常见Linux压缩包格式 .tar.gz \ .zip \.7z \.xz \.rar \ .bzip2 最常用的是.tar.gz,原因:linux各种版本标准压缩方式,几乎各大版本可以直接用; 7Z和ZIP要另外下载单独的软件,才能压缩和解压; 【注意】…

「QT」文件类 之 QIODevice 输入输出设备类

✨博客主页何曾参静谧的博客📌文章专栏「QT」QT5程序设计📚全部专栏「Win」Windows程序设计「IDE」集成开发环境「UG/NX」BlockUI集合「C/C」C/C程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「UG/NX」NX定制…

制作图片木马

图片文件通常有称作幻数的头字节,我们来看一下几种图片文件的幻数: (注意!下面是二进制而不是文本格式的数据) 通过检查头几位字节,可以分辨是否是图片文件! 通过检查头几位字节,可…

数据库基础(11) . SQL脚本

1.概述 SQL脚本 : 是由一系列SQL命令组成在一起执行以完成特定的任务。 SQL脚本通常用于执行批量操作,如创建数据库对象(表、视图、存储过程等)、插入数据、执行批处理更新等。 1.1.标识符命名 对象起名(变量、常量、函数等&a…

llama factory lora 微调 qwen2.5 7B Instruct模型

项目背景 甲方提供一台三卡4080显卡 需要进行qwen2.5 7b Instruct模型进行微调。以下为整体设计。 要使用 LLaMA-Factory 对 Qwen2.5 7B Instruct模型 进行 LoRA(Low-Rank Adapters)微调,流程与之前提到的 Qwen2 7B Instruct 模型类似。LoRA …

《通过不对称双分类器差异最小化进行糖尿病视网膜病变分级的领域偏斜适应》|文献速递-基于深度学习的病灶分割与数据超分辨率

Title 题目 Grade-Skewed Domain Adaptation via Asymmetric Bi-Classifier DiscrepancyMinimization for Diabetic Retinopathy Grading 《通过不对称双分类器差异最小化进行糖尿病视网膜病变分级的领域偏斜适应》 01 文献速递介绍 糖尿病视网膜病变(DR&#…

PaoluGPT——窥视未知

上一题已经得到一个flag,还有一个flag 根据题目信息,说明还有一些聊天记录是没有公开的,另一个flag就在这些未公开的聊天记录中 下载题目附件看看,发现里面有个main.py: 可以看到有两条SQL查询语句,猜测应该…