Uniapp触底刷新

news2024/12/27 9:56:52

在你的代码中,使用了 scroll-view 来实现一个可滚动的评论区域,并且通过监听 @scrolltolower 事件来触发 handleScrollToLower 函数,以实现“触底更新”或加载更多评论的功能。

关键部分分析:

  1. scroll-view 组件:

    • scroll-view 是一个支持滚动的容器组件,可以通过设置 scroll-y 来启用纵向滚动。
    • @scrolltolower 事件监听器:当滚动到底部时会触发该事件,通常用来加载更多数据或执行其他操作。
  2. @scrolltolower="handleScrollToLower":

    • @scrolltolower 绑定了 handleScrollToLower 函数。这个事件会在用户滚动到 scroll-view 的底部时被触发。
  3. handleScrollToLower 方法:

    • 当用户滚动到底部时,handleScrollToLower 被调用。你在该函数内部调用了 triggerFunction 来执行一些操作,比如加载更多评论。
    • 在实际应用中,triggerFunction 可以替换成发起请求来从服务器获取更多数据,或者更新 commentsList
  4. commentsList 数据更新:

    • 你通过 onMounted 生命周期钩子来模拟从服务器加载数据。初始化时填充了一个评论列表,并通过一个 for 循环来模拟追加更多的评论(其实是模拟加载更多的效果)。
    • 在实际的生产环境中,你可能会在 triggerFunction 中触发一个 API 请求,来拉取更多的数据并更新 commentsList

具体触底更新的实现逻辑:

  • 用户向下滚动时,scroll-view 会触发 scrolltolower 事件。这个事件绑定到 handleScrollToLower 方法。
  • handleScrollToLower 方法内,你调用了 triggerFunction,这通常会是一个加载更多数据的函数。在你的例子中,triggerFunction 只是简单地打印了一个日志,但在实际项目中它应该用来发起网络请求、更新数据或者执行其他任务。
  • 如果评论数据被动态更新(例如通过调用 API 加载新评论并添加到 commentsList 中),那么界面会自动重新渲染,展示新的评论内容,从而实现了“触底更新”的效果。

为什么这可以触底更新:

  • scroll-view 组件的 @scrolltolower 事件会在滚动到底部时触发,因此可以实现加载更多数据的功能。触发该事件后,通过更新数据(如 commentsList)来展示新的内容,从而完成“触底更新”。
<template>
	<scroll-view class="commentBox" scroll-y @scrolltolower="handleScrollToLower">
		<view class="comment" v-for="comment in commentsList" :key="comment.id">

			<u-row style="">
				<u-col span="">
					<view class="">
						<up-avatar :src="comment.url" size=28></up-avatar>
					</view>
				</u-col>

				<u-col span="3" style="margin-left: 10rpx;">
					<view class="">
						<view class="" style="margin-bottom: -11rpx;">
							<span style="font-weight: bolder;font-size: 20rpx;">{{comment.name}}</span>
						</view>
						<view class="">
							<span style="font-size: 10rpx;font-weight: 200;">{{comment.date}}</span>
						</view>
					</view>
				</u-col>
			</u-row>

			<u-row style="">
				<u-col span="1" class=""></u-col>
				<u-col span="11" class="">
					<view class="" style="padding-right: 30rpx;">
						<span style="font-size: 25rpx;">{{comment.comment}}</span>
					</view>
				</u-col>
			</u-row>

			<up-divider text="" style="margin: 8rpx 0rpx;"></up-divider>
		</view>
	</scroll-view>
</template>

<script setup>
	import {
		ref,
		onMounted
	} from 'vue'

	const commentsList = ref([{
		id: '',
		url: '',
		name: '张三',
		date: '2023-12-23 12:12',
		comment: '不知道说防静电搜咖啡机都说了粉底哦时间覅哦对王师傅is哦房间地哦师傅什么'
	}])


	onMounted(() => {
		for (let i = 0; i < 10; i++) {
			commentsList.value.push({
				id: '' + i,
				url: '',
				name: '张三',
				date: '2023-12-23 12:12',
				comment: '不知道说防静电搜咖啡机都说了粉底哦时间覅哦对王师傅is哦房间地哦师傅什么'
			})
		}
	})
	const handleScrollToLower = () => {
		console.log("已滚动到底部,触发函数!");
		triggerFunction();
	};

	const triggerFunction = () => {
		console.log("触发自定义函数");
	};
</script>

<style lang="scss" scoped>
	.commentBox {
		width: 100%;
		height: 100vh;
		overflow-y: auto;
	}

	.comment {
		margin-left: 20rpx;
	}

	.context {
		font-size: 25rpx;
		padding: 20rpx;
	}
</style>

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

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

相关文章

深入浅出体验AI生图产品Dall-E

DALL-E是由OpenAI开发的一种革命性的AI图像生成工具&#xff0c;能够根据文本描述生成图像。它的名字灵感来源于著名画家萨尔瓦多达利&#xff08;Salvador Dal&#xff09;和皮克斯动画电影中的角色瓦力&#xff08;WALL-E&#xff09;&#xff0c;这暗示了其在艺术创造力与技…

域名解析系统 DNS

1.域名系统概述 用户与互联网上某台主机通信时&#xff0c;必须要知道对方的IP地址。然而用户很难记住长达32 位的二进制主机地址。即使是点分十进制地址也并不太容易记忆。但在应用层为了便于用户记忆各种网络应用&#xff0c;连接在互联网上的主机不仅有P地址&#xff0c;而…

学习ASP.NET Core的身份认证(基于Session的身份认证3)

开源博客项目Blog中提供了另一种访问控制方式&#xff0c;其基于自定义类及函数的特性类控制访问权限。本文学习并测试开源博客项目Blog的访问控制方式&#xff0c;测试程序中直接复用开源博客项目Blog中的相关类及接口定义&#xff0c;并在其上调整判断逻辑。   首先是接口A…

十六(AJAX3)、XMLHttpRequest、Promise、简易axios封装、案例天气预报、lodash-debounce防抖

1. XMLHttpRequest 1.1 XMLHttpRequest-基本使用 /* 定义&#xff1a;XMLHttpRequest&#xff08;XHR&#xff09;对象用于与服务器交互。通过 XMLHttpRequest 可以在不刷新页面的情况下请求特定 URL&#xff0c;获取数据。这允许网页在不影响用户操作的情况下&#xff0c;更…

【QT】音乐播放器demo

1、使用设计师模式绘制ui界面 添加QPushButton并设置大小&#xff0c;ctrl鼠标拖动复制相同的组件。 添加icon //ps:icon下载网站 设置按钮无边框并设置鼠标悬停颜色&#xff1a; 修改QWidget样式表&#xff0c;添加&#xff1a; *{ border:none; } QPushBu…

「Mac畅玩鸿蒙与硬件34」UI互动应用篇11 - 颜色选择器

本篇将带你实现一个颜色选择器应用。用户可以从预设颜色中选择&#xff0c;或者通过输入颜色代码自定义颜色来动态更改界面背景。该应用展示了如何结合用户输入、状态管理和界面动态更新的功能。 关键词 UI互动应用颜色选择器状态管理用户输入界面动态更新 一、功能说明 颜色…

T620存储安全方案SoC芯片技术手册

系统资源 集成32位国产CPU CK803S&#xff1b;最高工作频率260Mhz CK803S内置16KB I/D Cache&#xff0c;内置32KB DTCM 32KB ROM&#xff1b;256KB SRAM&#xff1b;8KB SRAM&#xff08;系统专用&#xff09; 512KB/1MB 片内Flash 安全算法 支持SM4数据加密&#xff0c;加密性…

计算机光电成像理论基础

一、透过散射介质成像 1.1 光在散射介质中传输 光子携带物体信息并进行成像的过程是一个涉及光与物质相互作用的物理现象。这个过程可以分为几个步骤来理解&#xff1a; 1. **光的发射或反射**&#xff1a; - 自然界中的物体可以发射光&#xff08;如太阳&#xff09;&am…

C语言——自我介绍_Gitee的基本使用

自我介绍 一名信息安全技术应用专业的大学生&#xff0c;来到CSDN博客论坛已有两年。写博客的目的&#xff1a;第一点是为了学习到更多的知识&#xff0c;以便以后所需&#xff1b;第二点是为了读者&#xff0c;俺是一个初学者&#xff0c;希望可以和读者朋友共同进步&#xf…

Redis高阶集群搭建+集群读写

问题 容量不够&#xff0c;redis 如何进行扩容&#xff1f;并发写操作&#xff0c; redis 如何分摊&#xff1f;另外&#xff0c;主从模式&#xff0c;薪火相传模式&#xff0c;主机宕机&#xff0c;导致 ip 地址发生变化&#xff0c;应用程序中配置需要修改对应的主机地址、端…

windows下kafka初体验简易demo

这里提供了windows下的java1.8和kafka3.9.0版本汇总&#xff0c;可直接免费下载 【免费】java1.8kafka2.13版本汇总资源-CSDN文库 解压后可以得到一个文件夹 资料汇总内有一个kafka文件资料包.tgz&#xff0c;解压后可得到下述文件夹kafka_2.13-3.9.0&#xff0c;资料汇总内还…

深入理解 TCP 标志位(TCP Flags)

深入理解 TCP 标志位&#xff08;TCP Flags&#xff09; 1. 简介 在网络安全和网络分析领域&#xff0c;TCP标志位&#xff08;TCP Flags&#xff09;是理解网络行为和流量模式的关键概念。特别是在使用工具如Nmap进行端口扫描时&#xff0c;理解这些标志位的意义和用法至关重…

【智商检测——DP】

题目 代码 #include <bits/stdc.h> using namespace std; const int N 1e510, M 110; int f[N][M]; int main() {int n, k;cin >> n >> k;for(int i 1; i < n; i){int x;cin >> x;f[i][0] __gcd(f[i-1][0], x);for(int j 1; j < min(i, k)…

游戏引擎学习第31天

仓库:https://gitee.com/mrxiao_com/2d_game 回顾 回顾了他们的游戏开发进度&#xff0c;并强调了编写整个游戏的价值。他们提到&#xff0c;这个过程的目的是让每个参与者从零开始编程一个完整的游戏&#xff0c;了解整个游戏的工作原理。这样做的一个关键好处是&#xff0c…

南昌大学(NCU)羽毛球场地预约脚本

在冬天进行羽毛球运动是一个很好的选择&#xff0c;它能帮助你保持身体活力&#xff0c;增强心肺功能&#xff0c;并促进血液循环。但是室友和师弟师妹反应&#xff0c;学校的羽毛球场地有限&#xff0c;手速慢的根本预约不到场地。 中午12&#xff1a;00准时开放预约&#xff…

debian 11 虚拟机环境搭建过坑记录

目录 安装过程系统配置修改 sudoers 文件网络配置换源安装桌面mount nfs 挂载安装复制功能tab 无法补全其他安装 软件配置eclipse 配置git 配置老虚拟机硬盘挂载 参考 原来去 debian 官网下载了一个最新的 debian 12&#xff0c;安装后出现包依赖问题&#xff0c;搞了半天&…

leecode96.不同的二叉搜索树

在画的过程中发现规律&#xff0c;每次选择不同的节点作为根节点&#xff0c;左右两边的节点再排列组合一下就能求出总数 class Solution { public:int numTrees(int n) {vector<int> dp(n1,0);dp[0]1;for(int i1;i<n;i)for(int j0;j<i;j)dp[i]dp[i-j-1]*dp[j];ret…

Vue前端开发-路由的基本配置

在传统的 Web 页面开发过程中&#xff0c;可以借助超级链接标签实现站内多个页面间的相互跳转&#xff0c;而在现代的工程化、模块化下开发的Web页面只有一个&#xff0c;在一个页面中需要实现站内各功能页面渲染&#xff0c;相互跳转&#xff0c;这时些功能的实现&#xff0c;…

Creating Server TCP listening socket *:6379: bind: No error

启动redis报错&#xff1a;Creating Server TCP listening socket *:6379: bind: No error 解决方案&#xff1a; 1、直接在命令行中输入 redis-cli.exe 2、输入shutdown&#xff0c;关闭 3、输exit&#xff0c;退出 4、重新输入 redis-server.exe redis.windows.conf&…

详解登录MySQL时出现SSL connection error: unknown error number错误

目录 登录MySQL时出错SSL connection error: unknown error number 出错原因 使用MySQL自带的工具登录MySQL 登陆之后&#xff0c;使用如下命令进行查看 解决方法 找到MySQL8安装目录下的my.ini配置文件 记事本打开my.ini文件&#xff0c;然后按下图所示添加配置 此时再…