微信小程序网络请求模块封装的具体实现_第1页
微信小程序网络请求模块封装的具体实现_第2页
微信小程序网络请求模块封装的具体实现_第3页
微信小程序网络请求模块封装的具体实现_第4页
微信小程序网络请求模块封装的具体实现_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第微信小程序网络请求模块封装的具体实现目录前言具体实现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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论