小程序基础学习(请求封装)(重点,核心)

目录

 首先: 封装一个request请求的js文件,用的是Promise

然后: 请求编写

原理:首先在页面加载完成以后发送一次请求数据,由于请求的数据会反复使用,直接把他抽离到外面,以后直接调用。在使用async和await异步的方式接收请求的数据。最后在设置页面的宽高,并设置触底之后在发送一次请求即可。

组件代码

request代码


 

 首先: 封装一个request请求的js文件,用的是Promise

然后: 请求编写

原理:首先在页面加载完成以后发送一次请求数据,由于请求的数据会反复使用,直接把他抽离到外面,以后直接调用。在使用async和await异步的方式接收请求的数据。最后在设置页面的宽高,并设置触底之后在发送一次请求即可。

 

组件代码

<!--pages/seven/seven.wxml-->
<navigation-bar title="旅途" back="{
  {false}}" color="black" background="#FFF"></navigation-bar>

<scroll-view scroll-y="{
  {true}}" style="width:100%;height:{
  {windowHeight}}px;" bindscrolltolower="onReachBottom">
<view>
  <view>
    <block wx:for="{
  {houselist}}" wx:key="item.data.houseId">
      <view>{
  {item.data.houseName}}</view>
      <image src="{
  {item.data.image.url}}"></image>
    </block>
  </view>
</view>
</scroll-view>
// pages/seven/seven.js
import { myRequest } from "../../services/request/index"
const systemInfo = wx.getSystemInfoSync();
const windowHeight = systemInfo.windowHeight;
Page({
  
  /**
   * 页面的初始数据
   */
  data: {
    windowHeight:windowHeight,
    houselist:[],
    allCities:{},
    currentPage:1
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.getCityData(),
    this.getHouselistData()

  },
  async getCityData(){
    const cityRes = await myRequest({
      url:"http://codercba.com:1888/api/city/all"
    })
    this.setData({allCities:cityRes})
  },
  async getHouselistData(){
    const houseRes = await myRequest({
      url:"http://codercba.com:1888/api/home/houselist",
      data:{
        page:this.data.currentPage
      }
    })
    console.log(this.data.houselist)
    console.log(houseRes.data)
    const finalHouseList = [...this.data.houselist,...houseRes.data]
    this.setData({houselist:finalHouseList})
    this.data.currentPage++
  },
  onReachBottom(){
    this.getHouselistData()
    console.log("触底了")
  }
})
/* pages/seven/seven.wxss */
{
  "usingComponents": {    "navigation-bar": "/components/navigation-bar/navigation-bar"}
}

request代码

export function myRequest(option){
  return new Promise((resolve,reject)=>{
    wx.request({
      ...option,
      success:(res)=>{
        resolve(res.data)
      },
      fail:reject
    })
  })
}

相关推荐

  1. 微信程序网络请求二次封装

    2024-01-17 17:54:05       47 阅读
  2. 微信程序网络请求封装API集中管理

    2024-01-17 17:54:05       19 阅读
  3. [程序开发] 设置request封装请求参数

    2024-01-17 17:54:05       19 阅读
  4. 微信原生程序封装网络请求wx.request

    2024-01-17 17:54:05       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-17 17:54:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-17 17:54:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-17 17:54:05       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-17 17:54:05       20 阅读

热门阅读

  1. c++ 指针的安全问题

    2024-01-17 17:54:05       30 阅读
  2. LeetCode 38. 外观数列

    2024-01-17 17:54:05       35 阅读
  3. 笨蛋学设计模式结构型模式-装饰者模式【10】

    2024-01-17 17:54:05       28 阅读
  4. Golang 三数之和+ 四数之和 leetcode15、18 双指针法

    2024-01-17 17:54:05       37 阅读
  5. C++排序算法概览

    2024-01-17 17:54:05       35 阅读
  6. 计算机二级Python基本排序题-序号41(补充)

    2024-01-17 17:54:05       36 阅读
  7. Ubuntu平台上C语言利用matio库读取mat文件

    2024-01-17 17:54:05       31 阅读
  8. ubuntu 命令

    2024-01-17 17:54:05       31 阅读
  9. 在 Ubuntu 20.04 上配置 MySQL 主从同步

    2024-01-17 17:54:05       31 阅读
  10. WebGL简介以及使用

    2024-01-17 17:54:05       31 阅读
  11. Shell面试题总结

    2024-01-17 17:54:05       28 阅读
  12. Webservice调用方式解析!

    2024-01-17 17:54:05       41 阅读