小程序学习笔记:实现上拉触底加载随机颜色案例全解析

在前端开发中,上拉触底加载数据是一个常见的交互需求。今天,我们就来详细探讨如何实现一个上拉触底加载随机颜色的案例,帮助大家更好地理解相关技术的应用。

案例效果展示

在这个案例里,我们最终要实现的效果是这样的:当进入 “联系我们” 页面时,会出现数据加载的 loading 提示效果。数据加载成功后,页面上会展示出一系列色板。当用户滑动页面至底部时,会自动加载下一页的数据,并将新数据展示出来。继续滑动,还能不断触发上拉触底事件,加载更多数据。

实现步骤详解

1. 定义获取随机颜色的方法

在页面的.js文件中,找到data节点,声明一个数组colorList,用于存储所有随机颜色。接着,声明一个名为getColors的方法。在微信小程序开发环境下,通过调用wx.request函数发起网络数据请求来获取随机颜色。这里使用的请求地址是https://3w.escook.cn/api/color,请求方式为GET。

// 在页面的js文件中
data: {colorList: []
},
getColors: function() {wx.request({url: 'https://3w.escook.cn/api/color',method: 'GET',success: (res) => {const newColors = res.data;this.setData({colorList: [...this.data.colorList, ...newColors]});}});
}

在请求成功的回调函数中,从结果对象解构出data属性并赋值给新变量,然后将新获取的数据与旧数据进行拼接,再赋值给colorList。这样,colorList数组中就保存了所有获取到的随机颜色数据。

2. 页面加载时获取初始颜色数据并渲染 UI

在页面的onLoad函数中调用getColors方法,获取初始数据。获取到数据后,需要渲染 UI 结构并美化页面效果。
在.wxml文件中,使用wx:for指令循环colorList数组,创建每一个view节点。为每个view节点设置唯一的key值(这里使用index),添加class类名(如ngitem)用于样式美化,并通过style属性动态绑定背景颜色。

<!-- 在contact.wxml文件中 -->
<view wx:for="{{colorList}}" wx:key="{{index}}" class="ngitem" style="background-color: {{item}};">{{item}}
</view>

.wxss文件中,定义.ngitem类名的样式,包括边框、圆角、行高、边距、文本居中、文本阴影和盒子阴影等样式属性,使页面更加美观。

/* 在contact.wxss文件中 */
.ngitem {border: 1rpx solid #efefef;border-radius: 8rpx;line-height: 200rpx;margin: 15rpx;text-align: center;text-shadow: 0rpx 0rpx 5rpx #fff;box-shadow: 1rpx 1rpx 6rpx #aaa;
}
3. 上拉触底时获取下一页数据

在上拉触底事件处理函数中,再次调用getColors方法。这样,当用户滑动页面至底部时,就能发起网络数据请求,获取下一页的数据,并拼接到之前的colorList数组中,实现数据的动态加载。

// 在contact.js文件中
onReachBottom: function() {this.getColors();
}

通过以上三个主要步骤,我们就成功实现了上拉触底加载随机颜色的功能。从定义获取随机颜色的方法,到页面加载时的初始化和 UI 渲染,再到上拉触底时的数据加载,每一步都紧密相连,共同构成了这个完整的交互效果。希望通过这个案例的分享,大家对前端开发中的数据加载和 UI 渲染有更深入的理解,能够在自己的项目中灵活运用这些技术。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/86276.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/86276.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java+GcExcel,生成自定义工作表

引言 在当今数字化办公和数据处理的时代&#xff0c;电子表格的应用无处不在。对于 Java 开发人员来说&#xff0c;如何高效地创建、操作和处理兼容 Microsoft Excel 的电子表格是一个常见的需求。GcExcel Java 作为葡萄城表格解决方案中的后端表格组件&#xff0c;为 Java 开…

跨平台C++软件开发之基本数据类型介绍

跨平台C软件开发过程中&#xff0c;原生数据类型的字节宽度差异是一个常见且关键的问题&#xff0c;不同操作系统、编译器、硬件架构可能会为相同的数据类型分配不同的字节数&#xff0c;这可能导致代码在移植过程中出现未定义的行为或兼容性问题。本文简要介绍C原生数据类型字…

Java编程中的单例模式

在Java中实现单例模式有几种方式&#xff0c;但最常见的是懒汉式和饿汉式。我们先来看一个简单的懒汉式实现&#xff1a; public class Singleton {private static Singleton instance;private Singleton() {} // 构造方法私有化&#xff0c;防止外部实例化public static Sin…

原生微信小程序网络请求与上传接口封装实战指南

本文基于微信小程序原生 API&#xff0c;封装 request 和 uploadFile 接口&#xff0c;最终实现统一请求管理、请求拦截、错误处理等能力。 &#x1f4e6; 一、为什么要封装网络请求&#xff1f; 微信小程序提供了 wx.request 和 wx.uploadFile 原生 API&#xff0c;但直接使用…

软件测试基础知识详解

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 1、软件测试定义 软件测试是指在规定的条件下对程序进行操作&#xff0c;以发现程序错误&#xff0c;衡量软件质量&#xff0c;并对其是否能满足设计要求进行…

Spring Boot 文件上传大小配置错误解决方案

问题描述 在Spring Boot应用中出现以下错误&#xff1a; Failed to bind properties under spring.servlet.multipart.max-file-size’ to org.springframework.util.unit.Datasize Property:spring.servlet.multipart.max-file-sizeValue: 10Mb Origin: URL [file:./applicat…

Matplotlib绘制矩阵图,plt.matshow/imshow 与 ax.pcolor(pcolormesh)方法的使用

文章目录 plt.matshow离散colorbar连续colorbar ax.pcolor简单应用综合应用 import matplotlib.pyplot as plt import numpy as np from matplotlib.colors import ListedColormap#data np.random.seed(42) data np.random.rand(4, 4)plt.matshow 可以把下面的matshow换成ims…

关于 ARM64 汇编:调用流程与栈帧结构解析

一、ARM64 函数调用分析&#xff08;汇编级&#xff09; 寄存器规则&#xff08;AArch64 ABI&#xff09; 用途寄存器参数传递x0 ~ x7返回值x0&#xff08;最多两个&#xff1a;x0、x1&#xff09;栈指针sp链接寄存器x30&#xff08;lr&#xff09;帧指针x29&#xff08;fp&a…

Kafka vs RabbitMQ vs Redis:消息中间件全面对比与选型指南

Kafka vs RabbitMQ vs Redis&#xff1a;消息中间件全面对比与选型指南 一、各中间件消息流转全过程Kafka 消息流转全过程&#xff08;含机制详解&#xff09;1. 核心组件2. 流程详解 RabbitMQ 消息流转全过程&#xff08;含机制详解&#xff09;1. 核心组件2. 流程详解 Redis …

【代码级指南】从Zero-shot到Chain-of-Thought:Prompt工程全栈技术解析​

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。 从理论到实践&#xff0c;掌握Zero-shot/Few-shot Prompt设计精髓。 一、Prompt Engineering 核心概念图解 Prompt Engineering 三大支柱 二、Prompt 设计基础框架 1. Prompt 核心四要素 prompt_template "&q…

sizeof()函数无法计算形参指针指向的字符串大小

给定的代码中&#xff0c;func() 函数打印的 name_len 是 指针的大小&#xff0c;而不是字符串的长度。具体原因如下&#xff1a; 代码分析 #include <stdio.h> #include <string.h>void func(char *name) {printf("name_len:%d", sizeof(name)); // 打…

Python打卡:Day37

知识点回顾&#xff1a; 过拟合的判断&#xff1a;测试集和训练集同步打印指标模型的保存和加载 仅保存权重保存权重和模型保存全部信息checkpoint&#xff0c;还包含训练状态 早停策略 浙大疏锦行

Android 9.0(API 28)后字重设置

在 Android 应用中设置字体字重&#xff08;Font Weight&#xff09;可以通过多种方式实现&#xff0c;下面详细介绍各种方法及其适用场景。 1. 使用 XML 属性设置字重 1.1 基本字重设置&#xff08;API 1&#xff09; <TextViewandroid:layout_width"wrap_content&…

WebRTC(十):RTP和SRTP

RTP&#xff08;Real-time Transport Protocol&#xff09; 作用 RTP 用于传输实时媒体流&#xff08;如音频、视频&#xff09;&#xff0c;它不提供可靠传输&#xff0c;而是关注低延迟、高实时性。 报文结构 整体结构 RTP 报文由以下部分组成&#xff1a; RTP Header …

微服务架构下面临的安全、合规审计挑战

微服务架构在带来敏捷性、可扩展性等优势的同时&#xff0c;也给安全和合规审计带来了巨大的挑战。这些挑战主要源于微服务的 分布式特性、动态性以及数量庞大 等特点。 以下是微服务架构下安全和合规审计面临的具体挑战 一、安全审计挑战 1. 攻击面扩大和复杂性增加 服务数…

显卡等驱动程序的介绍与安装

文章目录 1. 什么是驱动程序2. 电脑的驱动程序有哪些3. 电脑的驱动程序的安装4. 独立显卡驱动程序的安装5. 现代化驱动程序的安装6. 驱动程序既然这么重要&#xff0c;为什么我不都下一遍呢&#xff1f; 1. 什么是驱动程序 假设我们现在成功组装了一台台式机&#xff0c;那我们…

【Python】高光谱数据分析

特征提取 import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.cross_decomposition import PLSRegression from sklearn.preprocessing import StandardScaler from sklearn.linear_model import LinearRegression# 设置matplotlib支持中文…

nt!CcGetVirtualAddressIfMapped函数中的nt!CcGetVacbLargeOffset函数分析--重要

第一部分&#xff1a; 1: kd> kc # 00 nt!CcGetVirtualAddressIfMapped 01 nt!CcFlushCache 02 Ntfs!LfsFlushLfcb 03 Ntfs!LfsFlushToLsnPriv 04 Ntfs!LfsWriteLfsRestart 05 Ntfs!LfsWriteRestartArea 06 Ntfs!NtfsCheckpointVolume 07 Ntfs!NtfsCheckpointAllVolumes 0…

K8s入门指南:架构解析浓缩版与服务间调用实战演示

目录 前言一、k8s概念理解1、k8s整体架构&#xff08;1&#xff09; Master 主节点&#xff08;2&#xff09; Node 工作节点&#xff08;3&#xff09; Etcd 键值存储数据库 &#xff12;、Pod被视为最小的部署单元&#xff13;、k8s的五种控制器类型&#xff08;1&#xff09…

【ubuntu下小工具】Crontab定时任务进行数据备份和清理

背景 在生产环境的深度学习项目中&#xff0c;系统每日会持续生成大量数据。如果不进行有效管理&#xff0c;随着时间的推移&#xff0c;磁盘空间将被占满&#xff0c;最终导致服务器瘫痪。 为解决这一问题&#xff0c;需设置一个定时任务去执行脚本&#xff0c;用以完成&#…