一、创建请求封装目录

选中自己的项目,右键鼠标---->新建---->目录---->名字自定义【我的是api】

二、创建两个js封装文件

选中封装的目录,右键鼠标---->新建---->js文件---->名字自定义【我的两个js文件分别是my_http和my_api】

三、编写my_http.js封装文件

/*** 基础API请求地址(常量,全大写命名规范)* @type {string}* @constant*/
let BASE_URL = 'https://自己的基础接口URL/'/*** 封装的HTTP请求核心函数* @param {string} url - 请求的接口路径(不需要包含基础接口URL)* @param {Object} [data={}] - 请求参数,默认为空对象* @param {string} [method='GET'] - HTTP方法,默认GET,支持GET/POST/DELETE/PUT等* @returns {Promise} - 返回Promise便于链式调用* */
export default function http(url, data = {}, method = 'GET') {// 返回一个Promise对象,支持外部链式调用return new Promise((resolve, reject) => {// 调用uni-app的底层请求APIuni.request({// 拼接完整请求地址(基础接口URL +  请求的接口路径)url: BASE_URL + url,// 请求参数(GET请求时会自动转为query string)data: data,// 请求方法(转换为大写保证兼容性)method: method.toUpperCase(),// 请求头配置header: {// 从本地存储获取token,没有就位空'token': uni.getStorageSync('token') || '',// 默认JSON格式'Content-Type': 'application/json'},// 请求成功回调(注意:只要收到服务器响应就会触发,无论HTTP状态码)success: (res) => {/* HTTP层状态码处理(4xx/5xx等也会进入success回调) */if (res.statusCode !== 200) {const errMsg = `[${res.statusCode}]${res.errMsg || '请求失败'}`showErrorToast(errMsg)// 使用Error对象传递更多错误信息reject(errMsg)}/* 业务层状态码处理(假设1表示成功) */if (res.data.code === 1) {// 提取业务数据(约定data字段为有效载荷)resolve(res.data.data)} else {// 业务错误处理const errMsg = res.data.msg || `业务错误[${res.data.code}]`showErrorToast(errMsg)reject(res.data.msg)}},// 请求失败回调(网络错误、超时等)fail: (err) => {const errMsg = `网络连接失败: ${err.errMsg || '未知错误'}`showErrorToast(errMsg)reject(new Error(errMsg))},})})
}/*** 显示统一格式的错误提示(私有工具方法)* @param {string} message - 需要显示的错误信息* @private*/
function showErrorToast(message) {uni.showToast({title: message, // 提示内容icon: 'none', // 不显示图标duration: 3000 // 3秒后自动关闭})
}

 四、编写my_api.js封装文件

// 引入公共的请求封装
import http from './my_http.js'// 获取bannner列表
export const getBanner=()=>{return http('user/getBanner')
}

五、index.vue简单调用接口

<script setup>// 引入apiimport { getBanner } from '../../api/my_api'// 生命周期,进来就加载import {onLoad} from '@dcloudio/uni-app'onLoad(() => {//获取banner结果列表getBanner().then(res => {console.log('获取到的banner结果',res )})})
</script>

测试打印的结果

六、简单编写首页轮播图

<template><view class="container"><!-- v-if="bannerList.length" 	如果有数据就渲染 :list="bannerList"  		数据列表keyName="img"  				渲染的图片,img为接口的图片字段radius="8"  				圆角height="160"  				高160autoplay  					自动播放,默认值为true--><up-swiper v-if="bannerList.length" :list="bannerList" keyName="img" radius="8" height="160" autoplay></up-swiper></view></template><script setup>// 引入apiimport {getBanner} from '../../api/my_api'// 生命周期,进来就加载import {onLoad} from '@dcloudio/uni-app'//vueimport {ref,reactive} from 'vue'//定义轮播图数组const bannerList = ref([])onLoad(() => {//获取banner结果列表getBanner().then(res => {console.log(res)//将获取的值赋值给轮播图数组变量bannerList.value = res})})
</script><style lang="scss">.container {padding: 20rpx;}
</style>

 效果

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

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

相关文章

autojs和冰狐智能辅助该怎么选择?

最近打算做自动化脚本&#xff0c;在autojs和冰狐智能辅助中做选择&#xff0c;不知道该怎么选。没办法只能花费大量时间仔细研究了autojs和冰狐智能辅助&#xff0c;综合考虑功能需求、开发复杂度、编程经验及项目规模等因素。以下是两者的核心对比及选择建议&#xff0c;仅供…

python24-匿名函数

课程&#xff1a;B站大学 记录python学习&#xff0c;直到学会基本的爬虫&#xff0c;使用python搭建接口自动化测试就算学会了&#xff0c;在进阶webui自动化&#xff0c;app自动化 匿名函数 匿名函数实践是检验真理的唯一标准 匿名函数 匿名函数是指没有名字的函数&#xff…

Android 查看 Logcat (可纯手机方式 无需电脑)

安装 Logcat Reader Github Google Play 如果有电脑 使用其ADB方式可执行如下命令 后续无需安装Termux # 使用 ADB 授予 android.permission.READ_LOGS 权限给 Logcat Reader adb shell "pm grant com.dp.logcatapp android.permission.READ_LOGS && am force-…

驱动开发硬核特训 · Day 30(上篇):深入理解 I2C 总线驱动模型(以 at24 EEPROM 为例)

作者&#xff1a;嵌入式Jerry 视频教程请关注 B 站&#xff1a;“嵌入式Jerry” 一、写在前面 在上一阶段我们已经深入理解了字符设备驱动与设备模型之间的结合方式、sysfs 的创建方式以及平台驱动模型的实际运用。今天我们迈入总线驱动模型的世界&#xff0c;聚焦于 I2C 总线…

超详细讲解注意力机制、自注意力机制、多头注意力机制、通道注意力机制、空间注意力机制

在如今的机器学习和深度学习领域&#xff0c;注意力机制绝对是一个热度居高不下的话题。事实上&#xff0c;注意力机制并不是一个全新的概念&#xff0c;早在多年前就已经被提出并应用。比如在图像分类任务中&#xff0c;SENet 和 ECA-Net 等模型中都运用了注意力机制&#xff…

Wireshark基本使用

本文会对Wireshark做简单介绍&#xff0c;带大家熟悉一下Wireshark的界面&#xff0c;以及如何使用过滤器。 接着会带大家查看TCP五层模型下&#xff0c;带大家回顾各层首部的格式。 最后会演示 Wireshark 如何抓取三次握手和四次挥手包的过程。 目录 一.Wireshark简介 二…

加速项目落地(Trae编辑器)

目录 vscode安装python支持 vscode常用插件 Trae编辑器 两个界面合成 补充&#xff08;QT开发的繁琐&#xff09; AI编程哪家强&#xff1f;Cursor、Trae深度对比&#xff0c;超详细&#xff01; - 知乎 Trae兼容vscode的插件&#xff0c;我们可以先在vscode里面装好再一…

stable diffusion的attention-map:提取和可视化跨注意力图

项目&#xff1a; wooyeolbaek/attention-map-diffusers: &#x1f680; Cross attention map tools for huggingface/diffusers 参考&#xff1a;【可视化必备技能&#xff08;1&#xff09;】SD / Flux 文生图模型的 Attention Map 可视化-CSDN博客

多环串级PID

文章目录 为什么要多环程序主函数内环外环 双环PID调参内环Kp调法Ki调法 外环Kp 以一定速度到达指定位置封装 为什么要多环 单环只能单一控制速度或者位置&#xff0c;如果想要同时控制多个量如速度&#xff0c;位置&#xff0c;角度&#xff0c;就需要多个PID 速度环一般PI…

基于Kubernetes的Apache Pulsar云原生架构解析与集群部署指南(上)

#作者&#xff1a;闫乾苓 文章目录 概念和架构概述主要特点消息传递核心概念Pulsar 的消息模型Pulsar 的消息存储与分发Pulsar 的高级特性架构BrokerBookKeeperZooKeeper 概念和架构 概述 Pulsar 是一个多租户、高性能的服务器到服务器消息传递解决方案。Pulsar 最初由雅虎开…

电子电气架构 --- 如何有助于提安全性并减少事故

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…

rest_framework学习之认证 权限

权限 DRF提供如下几种常见权限&#xff1a; IsAuthenticated, 认证通过 IsAdminUser, 管理员权限 IsAuthenticatedOrReadOnly, 登录用户增删改 非登录用户只能查询 AllowAny&#xff0c;无需认证&#xff08;默认&#xff09; 在rest_framework的APIView基础类中&#xf…

【使用switch结构输出季节】2021-11-23

缘由用switch语句设计程序一年有12个月-编程语言-CSDN问答 void 使用switch结构输出季节(int y) {//缘由https://ask.csdn.net/questions/7577096?spm1005.2025.3001.5141std::cout << y << "\t";switch (y){case 3: case 4: case 5:std::cout <<…

主备Smart Link + Monitor Link组网技术详细配置

1.实验拓扑 2.使用设备 eNSP模拟建议下行设备三台使用S3700模拟&#xff08;全部使用S5700可能会出现流量丢失等异常问题。&#xff09; 3.实验配置 [SW1]dis cu # sysname SW1 # vlan batch 100 110 # interface Ethernet0/0/1port link-type accessport default vlan 100 …

【hadoop】案例:Sqoop迁移仓库数据

1 数据导出&#xff1a;Hive导入MySQL [hadoophadoop1 sqoop]$ bin/sqoop export \ > --connect jdbc:mysql://localhost/weather \ > --username root \ > --password 123456 \ > --table mean_temperature \ > --export-dir /user/hive/warehouse/mydb/mean…

Mysql-OCP PPT课程讲解并翻译

#跳过介绍&#xff0c;直接从干货开始记录 第一章 安装mysql

springboot+vue实现在线网盘(云盘)系统

今天教大家如何设计一个网盘&#xff08;云盘&#xff09;系统系统 , 基于目前主流的技术&#xff1a;前端vue&#xff0c;后端springboot。 同时还带来的项目的部署教程。 视频演示 springbootvue实现在线网盘&#xff08;云盘&#xff09;系统 图片演示 一. 系统概述 用过百…

JAVA:Spring Boot 集成 Lua 的技术博客

1、简述 在现代开发中,Lua 以其轻量级、高性能以及易嵌入的特点广泛用于脚本扩展、游戏开发以及配置处理场景。将 Lua 与 Spring Boot 集成,可以在 Java 项目中实现动态脚本功能,增强项目的灵活性和动态配置能力。 样例代码: https://gitee.com/lhdxhl/springboot-example…

uniapp-商城-43-shop 后台管理 页面

后台管理较为简单&#xff0c;主要用于后台数据的管理&#xff0c;包含商品类别和商品信息&#xff0c;其实还可以扩展到管理用户等等 1、后台首页 包含 分类管理 商品管理 关于商家等几个栏目 主要代码&#xff1a; <template><view class"manage">…

食物数据分析系统vue+flask

食物数据分析系统 项目概述 食物数据分析系统是一个集食物营养成分查询、对比分析和数据可视化于一体的Web应用。系统采用前后端分离架构&#xff0c;为用户提供食物营养信息检索、食物对比和营养分析等功能&#xff0c;帮助用户了解食物的营养成分&#xff0c;做出更健康的饮…