




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第微信小程序网络请求模块封装的具体实现目录前言具体实现1.确定结构2.service网络请求的基本配置和公共方法3.apis创建对应功能模块的网络请求方法4.使用总结
前言
在进行一个微信小程序项目开发的时候我需要网络请求模块和后端数据进行沟通;接下来就和我一起简单的封装的一下网络请求模块吧。
具体实现
1.确定结构
在根目录新建service和apis文件夹;
service用来做网络请求的基本配置和输出公共的网络请求方法;
apis用来创建对应功能模块的网络请求方法(ex:操作音乐、操作视频);
2.service网络请求的基本配置和公共方法
config.js用来放置一些基本的配置:
//config.js
constBASE_URL="/apis"
constTIMEOUT=10000
export{
BASE_URL,
TIMEOUT
}
这里我们简单配置了网络请求的地址BASE_URL和超时的时间TIMEOUT;
index.js创建网络请求,生成公共方法:
import{BASE_URL,TIMEOUT}from'./config'
classMYRequest{
request(url,method,data){
//返回Promise对象
returnnewPromise((resolve,reject)={
wx.request({
url:BASE_URL+url,
timeout:TIMEOUT,
method:method,
data:data,
success:(res)={
resolve(res);
fail:(res)={
reject(res);
get(url,params){
returnthis.request(url,"GET",params);
post(url,data){
returnthis.request(url,"POST",data);
constmyRequest=newMYRequest;
exportdefaultmyRequest;
这里使用的是微信小程序官方的网络请求APIwx.request,对他进行一个封装。:参考地址;
为了让我们能很方便的拿到数据和抓取错误,我们返回了一个Promise对象,使用的时候就像这样:
myRequest.get('XXX',{
data:data
}).then(res={
//拿到数据,处理数据
}).cath(res={
//抓取错误
console.log(res);
});
我们还新增两个常用的网络请求方法get()和post(),在每次调用的时候执行request(url,GET/POST,params)方法进行数据请求并返回Promise对象。
3.apis创建对应功能模块的网络请求方法
引入刚刚创建的service/index.js
//api_music.js
importApiServicefrom"../service/index"
exportfunctiongetMusic(singer,limit=10){
returnApiService.get('/music',{
singer:singer,
limit:limit,
}
我们导出getMusic(singer,limit=10)方法,这样我们就创建好了一个根据歌手名字查找歌曲的get网络请求,当我们在需要使用这个网络请求的页面的时候,我们只需要引入改方法,就可以直接使用了。
我个人喜欢对不同的功能模块都创建一个js文件,api_music.jsapi_singer.js这样我看到这个api文件我就可以知道他是干什么的属于哪一个功能,我修改起来效率会高很多。
4.使用
根据对应的功能,引入该功能模块需要用到的网络请求方法;
//pages/music-list/index.js
import{getMusic}from"../../apis/api_video";
Page({
*页面的初始数据
data:{
musicList:null
*生命周期函数--监听页面加载
onLoad:function(options){
getMusic("周杰伦").then(
res={
this.setData({musicList:res.data.data})
).catch(
res={
console
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高考数学知识运用试题及答案
- 江西省鹰潭市2025届高三下学期一模试题 地理 含解析
- 家庭厨房燃气火灾应急预案(3篇)
- 幼儿园火灾-应急预案(3篇)
- 软件设计中的敏捷实践与团队协作创新试题及答案
- 《教育统计与测量评价新编教程》课件-教育统计与测量评价新编教程-第05章
- 计算机网络基础知识在实务中的应用试题及答案
- 技术文档的重要性与撰写技巧试题及答案
- 发展新兴市场的风险管理策略试题及答案
- 行政法学技术应用试题与答案
- 2023黑龙江大庆市大同区人才引进高频考点题库(共500题含答案解析)模拟练习试卷
- 认识桥梁课件
- 北大强基试题
- 把未来点亮歌词打印版
- 河南省机关事业单位退休人员一次性退休补贴审核表
- 英文电影鉴赏智慧树知到答案章节测试2023年北华大学
- 教练技术三阶段讲义
- GB/T 27760-2011利用Si(111)晶面原子台阶对原子力显微镜亚纳米高度测量进行校准的方法
- GB/T 223.26-2008钢铁及合金钼含量的测定硫氰酸盐分光光度法
- GB/T 1766-2008色漆和清漆涂层老化的评级方法
- 2023年第五届全国大学生化学实验竞赛笔试题及答案
评论
0/150
提交评论