小程序學習筆記:實現上拉觸底加載隨機顏色案例全解析

在前端開發中,上拉觸底加載數據是一個常見的交互需求。今天,我們就來詳細探討如何實現一個上拉觸底加載隨機顏色的案例,幫助大家更好地理解相關技術的應用。

案例效果展示

在這個案例里,我們最終要實現的效果是這樣的:當進入 “聯系我們” 頁面時,會出現數據加載的 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
英文地址,請注明出處:http://en.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;用以完成&#…