开始

先来写首页获取tabBars的数据。横向滚动切换的导航。
image.png
官方的使用案例
https://uniapp.dcloud.net.cn/api/request/request.html#request
image.png

  1. uni.request({
  2. url: 'https://www.example.com/request', //仅为示例,并非真实接口地址。
  3. data: {
  4. text: 'uni.request'
  5. },
  6. header: {
  7. 'custom-header': 'hello' //自定义请求头信息
  8. },
  9. success: (res) => {
  10. console.log(res.data);
  11. this.text = 'request success';
  12. }
  13. });

uRequest
image.png
输入urequest 出现代码提示,默认选择即可。
自动生成
image.png

  1. uni.request({
  2. url: '',
  3. method: 'GET',
  4. data: {},
  5. success: res => {},
  6. fail: () => {},
  7. complete: () => {}
  8. });

接口的地址
http://ceshi2.dishait.cn/api/v1/postclass

http://document.getpostman.com/view/7368091/S1Lx1okk?version=latest
注意config内配置的前缀。
image.png

image.png

  1. uni.request({
  2. url: this.config.webUrl+'/postclass',
  3. method: 'GET',
  4. data: {},
  5. success: res => {},
  6. fail: () => {},
  7. complete: () => {}
  8. });

在onLoad里面调用这个方法
image.png

image.png

image.png
难道数据后,循环获取到然后改变数据的字段的名称。 这里用到id和name
image.png
这时,就拿到我们想要的数据了
image.png

  1. uni.request({
  2. url: this.config.webUrl+'/postclass',
  3. method: 'GET',
  4. data: {},
  5. success: res => {
  6. let arr=[];
  7. for(let i=0;i < res.data.data.list.length;i++){
  8. arr.push({
  9. id: res.data.data.list[i].id,
  10. name: res.data.data.list[i].classname
  11. });
  12. }
  13. console.log("arr:" + JSON.stringify(arr));
  14. },
  15. fail: () => {},
  16. complete: () => {}
  17. });

赋值
image.png

  1. this.tabBars=arr;

后续可能还会写很多的uni.request 后期的维护成本很高。

封装

image.png

新建request.js

image.png
这是一个已经封装好的
image.png
后期使用直接这么去调用
image.png
验证的公共的封装. 这个默认封装在request.js内了。
image.png
如果接口出现错误了。不会继续往下走。
image.png
只需要关心拿到数据后,下面的操作就可以了image.png

开始封装

首先导出config .可以把写着看做是默认值。
image.png
默认的header的参数,默认的data为空,默认的方法是get请求, 默认是json格式。
image.png
然后我们需要get和post两个方法image.png
request方法也直接复制过来。
image.png
这里传过去的options
image.png
先屏蔽这一块
image.png
如果有传进来header头就用传进来的,否则就用默认config配置的。
image.png
这里的this.config是我们当前这个js里面的 config
image.png
引入配置文件和token
image.png
user内拿到token
image.png

image.png
这里都注释掉
image.png

image.png
打印这个r
image.png

image.png

image.png

image.png
参数1和参数2。参数1看做是出问题的回调,参数2 是成功的回调。
image.png
打印成功的res
image.png

image.png

image.png

image.png
err对应的就是fail失败返回的
image.png
res就是成功返回的
image.png

image.png

main.js导入request

命名为$http
image.png

调用$http

image.png

image.png

结束