黑马优购小程序之接口优化

2024-05-12 10:48

本文主要是介绍黑马优购小程序之接口优化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

      • 1.1 提取接口公共路径
      • 1.2 使用es7的async
        • 1.2.1 开启增强编译
        • 1.2.2 修改代码
      • 1.3 简化返回值
      • 1.4 小结

1.1 提取接口公共路径

在前面的开发中,网络请求中,url是这么写的:

url: "https://api-hmugo-web.itheima.net/api/public/v1/categories"

如果每个接口都这样的话,就有些繁琐了。在项目中,url公共路径可以提取出来,各业务接口只写配置各自的路径就好了。

修改request/index.js文件,在其中定义baseUrl,并拼接新的请求url,代码如下:

export const request = (params) => {return new Promise((resolve, reject) => {const baseUrl = "https://api-hmugo-web.itheima.net/api/public/v1";wx.request({...params,url: baseUrl + params.url,success: (result) => {resolve(result);},fail: (error) => {reject(error);}});})
}

将业务请求url修改,以category为例:

/* 加载分类数据*/
getCates() {request({url: "/categories"}).then(result => {this.Cates = result.data.message;// 本地存储数据wx.setStorageSync("cates", { time: Date.now(), data: this.Cates });this.updateUI();})
},

这样就完成了接口公共路径的抽取优化。

1.2 使用es7的async

接下来使用asyncawait简化请求代码。

1.2.1 开启增强编译

在这里插入图片描述

1.2.2 修改代码

此处以category/index接口为例,代码修改为:

/* 
加载分类数据
*/
async getCates() {const res = await request({ url: "/categories" });this.Cates = res.data.message;// 本地存储数据wx.setStorageSync("cates", { time: Date.now(), data: this.Cates });this.updateUI();
}

是不是清爽很多~

1.3 简化返回值

每个接口都需要this.Cates = res.data.message做解析,这里做下简化操作,将message直接传入各接口调用处。

修改request/index.js,在success中将message返回,代码如下:

export const request = (params) => {return new Promise((resolve, reject) => {const baseUrl = "https://api-hmugo-web.itheima.net/api/public/v1";wx.request({...params,url: baseUrl + params.url,success: (result) => {resolve(result.data.message);},fail: (error) => {reject(error);}});})
}

修改各接口解析方式,此处以category/index.js为例:

/* 加载分类数据
*/
async getCates() {const res = await request({ url: "/categories" });this.Cates = res;// 本地存储数据wx.setStorageSync("cates", { time: Date.now(), data: this.Cates });this.updateUI();// request({//   url: "/categories"// }).then(result => {//   this.Cates = result.data.message;//   // 本地存储数据//   wx.setStorageSync("cates", { time: Date.now(), data: this.Cates });//   this.updateUI();// })
},

如上,完成接口返回值解析的简化。

1.4 小结

本节主要功能知识点如下:

  • 提取接口公共路径
  • 使用es7asyncawait简化请求
  • 简化接口返回值解析

这篇关于黑马优购小程序之接口优化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/982419

相关文章

Java controller接口出入参时间序列化转换操作方法(两种)

《Javacontroller接口出入参时间序列化转换操作方法(两种)》:本文主要介绍Javacontroller接口出入参时间序列化转换操作方法,本文给大家列举两种简单方法,感兴趣的朋友一起看... 目录方式一、使用注解方式二、统一配置场景:在controller编写的接口,在前后端交互过程中一般都会涉及

usb接口驱动异常问题常用解决方案

《usb接口驱动异常问题常用解决方案》当遇到USB接口驱动异常时,可以通过多种方法来解决,其中主要就包括重装USB控制器、禁用USB选择性暂停设置、更新或安装新的主板驱动等... usb接口驱动异常怎么办,USB接口驱动异常是常见问题,通常由驱动损坏、系统更新冲突、硬件故障或电源管理设置导致。以下是常用解决

将Java程序打包成EXE文件的实现方式

《将Java程序打包成EXE文件的实现方式》:本文主要介绍将Java程序打包成EXE文件的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录如何将Java程序编程打包成EXE文件1.准备Java程序2.生成JAR包3.选择并安装打包工具4.配置Launch4

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

SpringBoot首笔交易慢问题排查与优化方案

《SpringBoot首笔交易慢问题排查与优化方案》在我们的微服务项目中,遇到这样的问题:应用启动后,第一笔交易响应耗时高达4、5秒,而后续请求均能在毫秒级完成,这不仅触发监控告警,也极大影响了用户体... 目录问题背景排查步骤1. 日志分析2. 性能工具定位优化方案:提前预热各种资源1. Flowable

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis