uniapp 封装网络请求

文章目录

          • 一、前端
            • 1. 封装网络请求
            • 2. 封装模块请求方法
          • 二、后端
            • 2.1. 返回对象
            • 2.2. 热搜接口
          • 三、微信模拟请求
            • 3.1. Network
            • 3.2. Console

一、前端
1. 封装网络请求
  1. 创建 utils 文件夹
  2. 创建 request.js ,封装请求对象
// const BASE_URL = 'https://api.imooc-blog.lgdsunday.club/api';
const BASE_URL = 'http://127.0.0.1:8080';
function request({ url, data, method }) {return new Promise((resolve, reject) => {// 发起网络请求uni.request({url: BASE_URL + url,data,method,success: ({ data }) => {// 响应成功,获取数据,解析数据if (data.success) {resolve(data);} else {// 响应失败,给用户提示uni.showToast({title: data.message,icon: 'none',mask: true,duration: 3000,});reject(data.message);}},fail: (error) => {reject(error);},complete: () => {// 关闭加载uni.hideLoading();},});});
}export default request;

后端需要按照前的接收的对象,封装后端返回的对象

2. 封装模块请求方法

原则:每个模块都有自己的请求管理api

  1. 创建 api 文件夹
  2. 创建 hot 文件,封装 hot 相关的请求方法
    hot.js
import request from '../utils/request';export function getHotTabs() {return request({url: '/hot/tabs'});
}

数据列表

<template><view class="hot-container"><view v-for="(item, index) in tabData" :key="index">{{ item.label }} - {{ index }}</view></view>
</template><script>
import { getHotTabs } from 'api/hot';
export default {data() {return {tabData: [],};},// 组件实例配置完成,但是DOM尚未渲染,进行网络请求,配置响应数据created() {this.loadHotTabs();},methods: {/*** 获取热搜标题数据*/async loadHotTabs() {// uniapp 支持 async awaitconst  res= await getHotTabs();this.tabData = res.content;console.log('res', res.content);},},
};
</script><style lang="scss"></style>
二、后端
2.1. 返回对象
package com.gblfy.wx.miniapp.vo;/*** 返回封装对象** @author gblfy* @date 2022-01-02*/
public class ResponseDto<T> {/*** 业务上的成功或失败*/private boolean success = true;/*** 返回码*/private String code;/*** 返回信息*/private String message;/*** 返回泛型数据,自定义类型*/private T content;public String getCode() {return code;}public void setCode(String code) {this.code = code;}public boolean getSuccess() {return success;}public void setSuccess(boolean success) {this.success = success;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}public T getContent() {return content;}public void setContent(T content) {this.content = content;}@Overridepublic String toString() {final StringBuffer sb = new StringBuffer("ResponseDto{");sb.append("success=").append(success);sb.append(", code='").append(code).append('\'');sb.append(", message='").append(message).append('\'');sb.append(", content=").append(content);sb.append('}');return sb.toString();}
}
2.2. 热搜接口
package com.gblfy.wx.miniapp.controller;import com.gblfy.wx.miniapp.vo.ResponseDto;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;/*** 热搜列表用于测试前后端数据交互** @author gblfy* @date 2022-01-02*/
@RestController
public class HotController {@GetMapping("/hot/tabs")public ResponseDto hotList() {Map<String, Object> map = new HashMap<>();map.put("id", 1);map.put("label", "热榜");Map<String, Object> map2 = new HashMap<>();map2.put("id", 2);map2.put("label", "热榜2");Map<String, Object> map3 = new HashMap<>();map3.put("id", 3);map3.put("label", "热榜3");Map<String, Object> map4 = new HashMap<>();map4.put("id", 4);map4.put("label", "热榜4");Map<String, Object> map5 = new HashMap<>();map5.put("id", 5);map5.put("label", "热榜5");List<Map<String, Object>> list = new ArrayList<>();list.add(map);list.add(map2);list.add(map3);list.add(map4);list.add(map5);ResponseDto dto = new ResponseDto();dto.setContent(list);return dto;}
}
三、微信模拟请求
3.1. Network

在这里插入图片描述

3.2. Console

在这里插入图片描述

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

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

相关文章

求伯君领衔5代技术人对话,00后浪来袭1024程序员节

10 月 23-25 日&#xff0c;由 CSDN 等多家单位精心筹划的“长沙 中国 1024 程序员节”将盛大举行。程序员节活动以开源为主议题&#xff0c;包括&#xff1a;2 场岳麓尖峰对话&#xff0c;2020 开源技术英雄大会&#xff0c;10 场热门技术分论坛/峰会&#xff0c;创意集市&am…

Vue全家桶 之 Vue基础

目录 1. Vue 概述2. Vue 基本使用2.1 Vue安装2.1.1 直接用 script 标签 引入2.1.2 NPM2.1.3 其它安装方式(略...)2.2 与传统开发模式对比2.3 Vue.js 之 HelloWorld 细节分析2.3.1 Vue实例参数2.3.2 插值表达式的用法2.3.3 Vue代码运行原理3. Vue模板语法3.1 模板语法概述3.1.…

容器环境自建数据库、中间件一键接入阿里云 Prometheus 监控

阿里云Prometheus服务4月9日发布重大升级&#xff0c;支持容器环境下一键接入MySQL、Redis、MangoDB、ElasticSearch等数据库和Kafka、ZooKeeper等中间件的监控&#xff0c;并提供开箱即用的监控大盘&#xff0c;现在接入更有15天免费试用。 15天免费试用地址&#xff0c;点击这…

状态管理 - 全局状态管理工具

文章目录一、单向数据流1. 理念示意图2. 简述二、什么是全局状态管理模式三、重点概念3.1. 什么是全局状态管理模式&#xff1f;3.2.全局状态管理工具&#xff1f;3.3. 什么是 vuex四、在项目中导入 vuex4.1. 状态管理配置4.2. 注册vuex五、测试 vuex 是否导入成功5.1. 创建搜索…

Nacos SDK for Scala 发布

脱胎于历经阿里巴巴10年生产验证的内部产品&#xff0c;支持具有数百万服务的大规模场景&#xff0c;Nacos作为高性能的动态服务发现、配置管理和服务管理平台从2018年开源以来&#xff0c;版本迭代速度很快&#xff0c;已经发布到1.2.1&#xff0c;已支持企业使用Nacos生产高可…

对话阿里云:开源与自研如何共处?

头图 | CSDN 下载自东方 IC来源 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;责编 | 晋兆雨从「鲜为人知」的专业名词&#xff0c;到 2006 年的精准定义&#xff0c;再到如今全面上云时代的「百花齐放」&#xff0c;云计算的发展趟过蛮荒之地&#xff0c;已形成极具规…

Flink 流批一体的实践与探索

自 Google Dataflow 模型被提出以来&#xff0c;流批一体就成为分布式计算引擎最为主流的发展趋势。流批一体意味着计算引擎同时具备流计算的低延迟和批计算的高吞吐高稳定性&#xff0c;提供统一编程接口开发两种场景的应用并保证它们的底层执行逻辑是一致的。对用户来说流批一…

uniapp 用户登录

文章目录一、登录基础1. 登录组件2. 页面引用组件3. 明确登录的实现思路4. 封装 action 调用登录接口5. 保存用户登录状态6. 成已登录的用户视图6. 现退出登录功能一、登录基础 1. 登录组件 对于 登录 功能来说提供了两个登录的入口。 那么大家想一下&#xff0c;现在我们已…

Vue 组件开发 - 数据输入框组件

目录 设计通用组件的一般思路组件效果1. HTML结构2. index.js3. input-number.js3.1 input-number.js代码注解设计通用组件的一般思路 明确需求; 设计API(组件的API:只来自props、events 和 slots); 2.1 确定命名、规则 2.2 编写业务逻辑 即使逻辑的第一版没做好,后续还可…

PyFlink 社区扶持计划正式上线!

Flink 从 1.9.0 版本开始增加了对 Python 的支持&#xff08;PyFlink&#xff09;&#xff0c;最新发布的 Flink 1.10 中明确目前 PyFlink 生态的功能特性在社区的努力下逐步完善。为了让大家更好的上手使用 PyFlink&#xff0c;自即日起&#xff0c;PyFlink 社区扶持计划正式上…

活动预告 | 2020移动云客户高端峰会即将揭幕,邀您一起携手云端!

一直以来&#xff0c;移动云致力于不断丰富自身产品体系&#xff0c;延伸服务深度和广度&#xff0c;提供“云网一体、贴身服务、随心定制、安全可控”的云服务&#xff0c;致力成为5G时代你身边的智慧云。依托中国移动网络资源与本地化服务团队&#xff0c;移动云为政府、互联…

如何在CDN边缘节点执行你的JavaScript?

Serverless和边缘计算都是目前云计算领域备受瞩目的研究和应用方向。做为拥有超过130Tbps带宽分发能力的阿里云CDN&#xff0c;巨大的边缘网络有超过2800个节点遍布全球&#xff0c;如何将中心源站的计算能力下沉到边缘节点&#xff0c;进一步降低客户端访问延时进而提升用户体…

微信小程序+腾讯地图 获取定位与地图选点插件

文章目录一、思路二、逆地址解析2.1. app.json2.2. 页面加入2.3. 后台代码三、地图插件调用3.1. app.json加入3.2. js页面加入3.3. wxml页面成功截图:腾讯位置服务官网&#xff1a; https://lbs.qq.com一、思路 通过 wx.getLocation 返回经纬度传到后台&#xff0c;后台调用腾…

前端工具安装和运行相关

目录1. nodemon 运行出错&#xff1a;无法运行脚本2. XXX~待续1. nodemon 运行出错&#xff1a;无法运行脚本 无法加载文件 C:\Users\xxx\AppData\Roaming\npm\nodemon.ps1&#xff0c;因为在此系统上禁止运行脚本。 解决办法&#xff1a; 管理员身份打开powerShell&#xf…

友盟+联合EB级云数据 实现友盟域和企业私域数据全面融合

友盟联合EB级云数据 实现友盟域和企业私域数据全面融合 2020-04-28 互联网大数据计算 国内领先的第三方全域数据智能服务商友盟&#xff0c;联合阿里云EB级云数据仓库MaxCompute为企业提供面向分析的&#xff0c;实现友盟域数据与企业私域数据全面融合的自助分析服务“U-DOP…

VMware连续三年获评Gartner广域网边缘基础设施魔力象限领导者

在2020年《Gartner广域网边缘基础设施边缘架构关键能力》报告中&#xff0c;VMware获评五大应用场景中的三大场景最高产品评分和四大场景优秀评级 中国北京&#xff0c;2020年10月20日——全球领先的企业软件创新者VMware&#xff08;NYSE&#xff1a;VMW&#xff09;近日宣布…

微信小程序之实现地图定位(使用腾讯位置服务插件)

文章目录一. 腾讯位置服务插件简介1. 完整的地图能力2. 地图插件的优势二. 开通腾讯位置服务三、接入插件四、 开发者密钥配置五、插件的使用一. 腾讯位置服务插件简介 1. 完整的地图能力 腾讯位置服务基于微信提供的小程序插件能力&#xff0c;专注于&#xff08;围绕&#…

分享16个经典的免费UI素材网站

免费字体 www.fontspace.com 一键AI抠图 www.remove.bg/zh 在线PS工具/可以转换Sketch文件

单人开发场景下的测试环境实践

在软件研发过程中&#xff0c;“测试环境”是部署最频繁、也是开发者使用最频繁的一种运行环境&#xff0c;稳定而易用的测试环境能够极大提高开发者的工作效率和幸福感。为更好的将阿里巴巴在测试环境管理方面的实践和经验跟广大开发者分享&#xff0c;《云效说码》策划了《阿…

函数计算如何访问 PostgreSQL 数据库

函数计算&#xff08;Function Compute&#xff09;&#xff1a;函数计算 是事件驱动的全托管计算服务。使用函数计算&#xff0c;您无需采购与管理服务器等基础设施&#xff0c;只需编写并上传代码。函数计算为您准备好计算资源&#xff0c;弹性地可靠地运行任务&#xff0c;并…