小程序封装ajax,微信小程序封装wx.request方法

wx.request的官方文档,具体如何使用官方文档里已经写的很明白了:

https://developers.weixin.qq.com/miniprogram/dev/api/network/request/wx.request.html

wx.request是一个异步的方法,所以请求数据之后success回调函数的作用域发生了改变,this的指向不是当前函数

663ffec95cf2a02beefd2e8090f1749e.png

两种方法可以改变this的指向:一种通过中间变量that。另一种通过ES6箭头函数改变this作用域,通过这种方式我们可以把从服务端获取的数据和页面的data绑定到一起

56eae47598b7679cc4d0f767287d8255.png

另外可以使用promise,promise可以解决异步嵌套的问题,简单的异步请求可以不使用promise

468ec97f72084bd864782bfd596420c3.png

promise.then((res)=>{

console.log(res)

});

如果一个小程序的请求接口很多,那么全写在一起会很难管理

所以在微信小程序中最好把常用的 wx.request请求封装起来,把请求url根地址储存到config.js里,在末尾export导出这个对象

bf60874351880250494a014a8724f866.png

接着在utils文件夹新建一个公共的http脚本文件http.js,并在头部引用config.js

b26c5c6bee0a13c743b26f70dc2120c3.png

在http.js中定义一个http类,里面有个实例方法request,方法传递了一个参数对象,保存了wx.request请求所需要的参数

22166b7caf62308b495b6c058896af63.png

在这个类的底部定义一个私有方法,用来显示请求错误时出现的弹框

0797631c79d7e136e8d6fd79c07ecccd.png

接着定义一些错误码来显示具体请求失败时的错误,后续可以增加不同的错误码

07e296d2d279d66be746e493aa5136a2.png

最后导出这个HTTP类

a54b000c826d4cc9f0d46ab886fdc353.png

http模块编写完毕,调用方法如下图:在url后直接跟baseurl后面的地址

9d1c9975c069045113d8bc735d0a793c.png

这只是一个基类存放了项目http请求基本的方法,接着进一步完善,在根目录新建models文件夹,在这个文件夹里存放我们不同组件的不同业务请求,

首先新建Classic.js,在里面定义一个class类继承前面写好的http模块,里面有个getLast方法用于获得最近的期刊数据

8fad3ce6d37742eb823bb6b55d34e135.png

接着把classic组件头部的引用路径改写,这样就可以直接使用classic.getLast方法,在getlast的回调方法里绑定数据到classicData上,除了setData里的数据,在data里定义的数据也可以直接在在页面使用{{}}绑定数据,setData用作数据更新

57a754ee335cb8b93f7add92a6e179e8.png

到这里基本wx,request方法也都封装完毕了,之后如果要如果添加新的请求,在后面添加即可

458696f1e44c932bc14ca35bc37341bb.png

接下来如果想把wx,request封装的再好一些,可以再加一层promise,新建一个http-p.js文件,错误码和底部的私有方法不变,在原有的http类上添加一层promise包装

6048bd6d9d3419466551ebe7d785cc62.png

在books.js的models中引用这个http-p.js,写入方法

1b89623e1fce6705e71646ba9d7d8771.png

book.js中引用:

2c2d05b0aa9ad34b81ff1c4d0f433b99.png

实例化

1a42d31ec4fa69868cdeed2d97865a4b.png

调用方式

4461f98a3f0f2e47f48310ed49061c05.png

至此wx.request方法封装的就差不多了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值