117.【微信小程序 - 01】(十一)

简介: 117.【微信小程序 - 01】

6.页面事件-上拉触底事件

(1). 什么是上拉触底

上拉触底是移动端的专有名词,通过手指在屏幕上的上拉滑动操作,从而加载更多数据的行为(相当于分页)。

(2).监听页面的上拉触底事件

在页面的 .js文件中,通过onReachBottom()函数即可监听当前页面的上拉触底事件。

当页面到达底部50px的时候,会自动触发

/**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
  )
  },

注意: 当我们已经处于请求下一个页面的时候,不能让用户再次上拉请求。我们要设置一个限制请求的过程。

(3).配置上拉触底距离

上拉触底距离指的是 触发上拉触底事件时,滚动条距离页面底部的距离。可以在全局或页面的 .json配置文件中,通过 onReachBottomDistance属性来配置上拉触底的距离。小程序默认的触底距离时50px,在实际开发中,可以根据自己的需求来修改这个默认值。

7.页面事件-上拉触底案列

(1).案列实现的步骤
  1. 定义获取随机颜色的方法。
  2. 在页面加载时获取初始化数据。
  3. 渲染UI结构并美化页面效果。
  4. 在上拉触底时调用获取随机颜色的方法
  5. 添加Loading提示效果
  6. 对上拉触底进行节流处理
(2).获取一个随机颜色
// pages/contact/contact.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
      colorList:[]
  },
  getColors(){
    wx.request({
      url: 'https://applet-base-api-t.itheima.net/api/color', //url
      method:'GET',  // 方式
      success:(resp)=>{  // 成功回调
        console.log('随机颜色->',resp.data.data)
        this.setData({
          colorList:[...this.data.colorList,...resp.data.data]  // 把新增的数据汇总到一起,并不是替换
        })
        console.log(this.data.colorList)
      }
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.getColors()
  }
})

(3).渲染UI结构并美化页面效果

contact.wxml

<!--pages/contact/contact.wxml-->
<view wx:for="{{colorList}}" wx:key="index" class="num-item" style="background-color: rgba({{item}});">
{{item}}
</view>
<view wx:for="{{colorList}}" wx:key="index" class="num-item" style="background-color: rgba({{item}});">
{{item}}
</view>

contact.wxss

/* pages/contact/contact.wxss */
.num-item{
  border: 1px solid red;
  border-radius: 8rpx;
  line-height: 200rpx;
  text-align: center;
}

(4).在上拉触底时调用获取随机颜色的方法

contact.js

/**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    this.getColors()
  },
// pages/contact/contact.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
      colorList:[]
  },
  getColors(){
    wx.request({
      url: 'https://applet-base-api-t.itheima.net/api/color', //url
      method:'GET',  // 方式
      success:(resp)=>{  // 成功回调
        console.log('随机颜色->',resp.data)
        this.setData({
          colorList:[...this.data.colorList,...resp.data.data]  // 把新增的数据汇总到一起,并不是替换
        })
        console.log(this.data.colorList)
      }
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.getColors()
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
  },
  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
  },
  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {
  },
  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
  },
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    this.getColors()
  },
  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
  }
})

(5).设置节流的操作

我们查看微信API找到微信官方提供的 加载接口

这个Loading不会自动的关闭,只有我们手动关闭

基本思路: 我们只需要在调用方法的成功之前,一直处于加载的页面。然后成功的时候把加载的页面给关闭了,就是限流成功!!

// pages/contact/contact.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
      colorList:[],
      count:0
  },
  getColors(){
    // 1.这里还没有进入成功的页面。
      wx.showLoading({
        title: '正在努力加载数据中...',
        mask:true
      })
    wx.request({
      url: 'https://applet-base-api-t.itheima.net/api/color', //url
      method:'GET',  // 方式
      success:(resp)=>{  // 成功回调
        console.log('随机颜色->',resp.data)
        this.setData({
          colorList:[...this.data.colorList,...resp.data.data]  // 把新增的数据汇总到一起,并不是替换
        })
        console.log(this.data.colorList)
      },
      complete:()=>{
         // 关闭加载的操作
        wx.hideLoading()
      }
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.getColors()
  },
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    this.getColors()
  },
})

8.自定义编译模式

(1).添加自定义编译模式

如何配置自定义编译模式: 1.点击普通编译。2.点击自定义编译。3.修改参数

(2).如何删除自定义编译模式

如何删除自定义的模板


相关文章
|
18天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
|
9天前
|
云安全 人工智能 安全
Dify平台集成阿里云AI安全护栏,构建AI Runtime安全防线
阿里云 AI 安全护栏加入Dify平台,打造可信赖的 AI
|
12天前
|
人工智能 运维 Java
Spring AI Alibaba Admin 开源!以数据为中心的 Agent 开发平台
Spring AI Alibaba Admin 正式发布!一站式实现 Prompt 管理、动态热更新、评测集构建、自动化评估与全链路可观测,助力企业高效构建可信赖的 AI Agent 应用。开源共建,现已上线!
1067 37
|
12天前
|
机器学习/深度学习 人工智能 搜索推荐
万字长文深度解析最新Deep Research技术:前沿架构、核心技术与未来展望
近期发生了什么自 2025 年 2 月 OpenAI 正式发布Deep Research以来,深度研究/深度搜索(Deep Research / Deep Search)正在成为信息检索与知识工作的全新范式:系统以多步推理驱动大规模联网检索、跨源证据。
827 56
|
10天前
|
文字识别 测试技术 开发者
Qwen3-VL新成员 2B、32B来啦!更适合开发者体质
Qwen3-VL家族重磅推出2B与32B双版本,轻量高效与超强推理兼备,一模型通吃多模态与纯文本任务!
713 11
|
3天前
|
人工智能 数据可视化 Java
Spring AI Alibaba、Dify、LangGraph 与 LangChain 综合对比分析报告
本报告对比Spring AI Alibaba、Dify、LangGraph与LangChain四大AI开发框架,涵盖架构、性能、生态及适用场景。数据截至2025年10月,基于公开资料分析,实际发展可能随技术演进调整。
288 4
下一篇
开通oss服务