【微信小程序学习】前后端交互

1、语法:wx.request()

 onLoad: function (options) {
    wx.request({
      url: 'http://localhost:3000/banner',
      data:{type:2},
      success:(res)=>{
        console.log('请求成功:',res)
      },
      fail:(err)=>{
        console.log('请求失败:', err)
      }
    })
  },

2、注意点:

(1)协议必须是https协议

(2)一个接口最多配置20个域名

(3)并发限制上限时10个

(4)开发过程中设置不校验合法域名:开发工具--->右上角详情--->本地设置--->不校验

3、发送ajax请求

(1)封装功能函数

  1. 功能点要明确
  2. 函数内部应该保留固定代码(静态的)
  3. 将动态的数据抽取成形参,由使用者根据自己的情况动态的传入实参
  4. 一个良好的功能函数应该设置形参的默认值

(2)封装功能组件

  1. 功能点要明确
  2. 组件内部保留静态的页码
  3. 将动态的数据抽取成props参数,由使用者根据自身的情况以标签属性的形式动态传入props数据
  4. 一个良好的组件应该设置组件的必要性及数据类型

4、具体操作 

 新建文件夹utils

request.js

//发送ajax请求
import config from'./config.js'
export default (url,data={},method='GET')=>{
  return new Promise((resolve,reject)=>{
    wx.request({
      url:config.host + url,
      data,
      method,
      success: (res) => {
        console.log('请求成功:', res);
        resolve(res.data);
      },
      fail: (err) => {
        console.log('请求失败:', err);
        reject(err);
      }
    })
  })


}

 config.js

export default {
  host:'http://localhost:3000'
}

index.js

onLoad: async function (options) {
    let bannerListData = await request('/banner',{type:2});
    this.setData({
      bannerList:bannerListData.banners
    })
    //获取推荐歌单数据
    let recommendListData = await request('/personalized',{limit:10}).then((res)=>{
      this.setData({
        recommendList: res.result
      })

    })
    //获取排行榜的数据
    // 需求分析:1、需要根据idx的值获取对应的数据2、idx的取值范围是0-20 我们需要0-4
    // 3、需要发送5次请求
    let index = 0;
    let resultArr=[];
    while(index<5){
      let topListData = await request('/top/list', { idx: index++ });
      let topListItem = {name: topListData.playlist.name, tracks:topListData.playlist.tracks.slice(0,3)};
      resultArr.push(topListItem);
      //不需要等待五次请求全部结束才更新,用户体验好
      this.setData({
         topList:resultArr
      })
    }
     //更新topList的状态值,此处更新会导致请求过程中页面长时间白屏,用户体验差
    //  this.setData({
    //     topList:resultArr
    //  })
  },

可以在AppData中获取到数据

 

  • 3
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翘阳啦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值