Loading 加载 Taro + vue3 自定义组件的封装和 分页 优化

1.需求

  当需要实现一个组件 上拉加载的组件 我们可以选择某些组件库的组件。

  但是有的组件没有这个组件,比如跟Taro 框架配套的京东nut-ui组件库 没有提供这个功能,

2.Loading组件

①封装

<template><div class="container"><div class="tip" v-if="page >= total && tipFlag">没有更多数据了呢~</div><div class="loading-box" v-if="loadingFlag && page <= total"><div class="loading-box-text"><div class="loading"></div><div class="text">正在加载中...</div></div></div><div style="height: 50px;"></div></div>
</template>
<script setup>
import { ref, toRefs } from "vue";
const props = defineProps({page: Number, //接受页数total: Number, //接收总页数loadingFlag: Boolean, //是否正在加载数据tipFlag: Boolean, //是否显示 "没有更多数据的提示"
});
const { pag, total, loadingFlag, tipFlag } = toRefs(props)
</script>
<style lang="scss">
.container {padding: 30px;.tip {color: #858a99;font-size: 24px;text-align: center;margin: 5px;}.loading-box {display: flex;justify-content: center;align-items: center;margin-bottom: 6px;.loading-box-text {display: flex;align-items: center;color: #858a99;.text {font-size: 18px;margin-left: 8px;}.loading {width: 14px;height: 14px;border: 2px solid #858a99;border-top-color: transparent;border-radius: 100%;text-align: center;animation: circle infinite 0.75s linear;}// 转转转动画@keyframes circle {0% {transform: rotate(0);}100% {transform: rotate(360deg);}}}}
}
</style>

② 使用 

   <Loading :page="pageinfo.currentPage" :total="totalpage" :loadingFlag="loadingFlag":tipFlag="tipFlag"></Loading>

3.分页节流的使用

//分页 节流
const throttle = (func, delay) => {let lastTime = 0;return function () {const now = new Date().getTime();if (now - lastTime >= delay) {func.apply(this, arguments);lastTime = now;}};
}
//分页
const onScrollBottom = throttle(() => {console.log("到底了");loadingFlag.value = true;tipFlag.value = false;if (pageInfo.value.currentPage < total.value) {pageInfo.value.currentPage++;getRuleList(1);} else {loadingFlag.value = false;tipFlag.value = true;}
}, 200);// 在绑定滚动事件时使用 onScrollBottom
window.addEventListener('scroll', onScrollBottom);//获取规则列表

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

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

相关文章

原型继承在 JavaScript 中是如何工作

原型继承是 JavaScript 中实现面向对象编程的一种机制。在 JavaScript 中&#xff0c;每个对象都有一个原型&#xff0c;原型是一个对象&#xff0c;它包含了对象的属性和方法。当我们试图访问一个对象的属性或方法时&#xff0c;JavaScript 先在对象本身中查找&#xff0c;如果…

<Icon-ResizER>support

If you get any questions in using app, email me caohechunhotmail.com.

vscode调试 反汇编c/c++ 查看汇编代码gdb/lldb

先看下流程&#xff01; 先看下流程&#xff01; 有问题请留言&#xff01; 文章目录 必备F5开启调试左侧侧边栏->确保打开回调栈右键函数栈->查看反汇编 方法二&#xff1a;手动输入命令查看 必备 使用c/c 插件&#xff0c;这应该是必备的。 F5开启调试 左侧侧边栏-&…

[Verilog] 加法器实现

1. 4位的加法器 先来一个最基本的的Verilog加法器 设计代码 module adder_4bit (input [3:0] a, b, output [3:0] sum, output carry);assign

react18框架笔记

React React 是 facebook 出的一款针对视图层的库(library)。它是基于单向数据流思想开发的&#xff0c;主要的一个功能就是针对视图显示&#xff0c;让我们把一个项目拆分成一个一个组件进行开发维护。 官网 目前我们讲的 react 是基于 18.2 的版本。react 每一个版本更新之…

Java多线程<二>多线程经典场景

leetcode 多线程刷题 上锁上一次&#xff0c;还是上多次&#xff1f; 同步的顺序。 1. 交替打印字符 使用sychronize同步锁使用lock锁使用concurrent的默认机制使用volitale关键字 Thread.sleep() / Thread.yield机制使用automic原子类 方式1 &#xff1a;使用互斥访问st…

acwing 二分

如&#xff1a;1&#xff0c;3&#xff0c;3&#xff0c;3&#xff0c;5&#xff0c;6&#xff0c;8&#xff0c;9找左端点的3&#xff1a; mid (right - left) / 2 left;if(nums[mid] < key) left mid 1; else right mid; 找右端点的3&#xff1a; mid (right - left…

window 服务使用powershell 调用office进行文档内存不够的处理

在项目中为了实现office文件的预览&#xff0c;专门做了个service进行文件的定时转换。 在测试时发现&#xff0c;服务程序 双击执行的时候&#xff0c;文件的转换一切正常&#xff0c;但是当把服务程序安装为服务的时候吗&#xff0c;就会出现如下错误&#xff1a; $PowerPo…

Matlab figure窗口最大化 窗口全屏 图表窗口最大化

我有一个项目&#xff0c;需要把多个数据文件画成的曲线一个个保存为图片&#xff0c;然后再进行集中对比分析。程序运行后&#xff0c;打开目录下保存的图片&#xff0c;发现图片的尺寸都很小&#xff0c;画质也不清晰&#xff0c;后来发现原来matlab显示图片的时候&#xff0…

java常见面试题:什么是装箱和拆箱?装箱和拆箱有哪些应用场景

装箱和拆箱是计算机科学中常用的术语&#xff0c;主要用于描述将数据从一种类型转换为另一种类型的操作。 装箱是将值类型转换为引用类型的过程。在装箱时&#xff0c;需要了解编译器内部的操作。首先&#xff0c;在托管堆中分配好内存&#xff0c;分配的内存量是值类型的各个…

UCi数据集处理技巧记录

如何起步使用UCI数据集 这里记录一下如何把带分号的数据变成经常使用的csv形式。这里使用wine的例子 https://archive.ics.uci.edu/dataset/186/winequality 原始数据 Wine UCI数据操作 这种带分号的使用python的不好阅读&#xff0c;可以尝试以下步骤&#xff1a; 转变为t…

2023-12-20 LeetCode每日一题(判别首字母缩略词)

2023-12-20每日一题 一、题目编号 2828. 判别首字母缩略词二、题目链接 点击跳转到题目位置 三、题目描述 给你一个字符串数组 words 和一个字符串 s &#xff0c;请你判断 s 是不是 words 的 首字母缩略词 。 如果可以按顺序串联 words 中每个字符串的第一个字符形成字符…

HPC平台搭建

文章目录 前言准备管理节点部署集群系统部署集群性能测试 前言 前面我们介绍了HPC高性能计算集群的背景高性能计算(HPC)的背景和简介和结构组成HPC系统组成简介&#xff0c;接下来&#xff0c;我们来聊聊如何一步步搭建一套HPC平台。 PS&#xff1a;本文会持续更新&#xff0c…

基于SpringBoot的健康医院门诊在线挂号系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot的健康医院门诊在线挂号系…

微信小程序-父子页面传值

父子页面传值 父页面向子页面传值 方法一&#xff1a; 父页面&#xff1a; 1. /page/xxx/xxx?id1子页面&#xff1a; onLoad:function(option){ }方法二 <bindtap“func” data-xxx””> 子页面向父页面传值 定义父子页面 父页面&#xff1a;hotspot 子页面&a…

网安面试三十道题(持续更新)

91 mof提权 ## 是mysql的提权方式&#xff0c;在Linux下不能用&#xff0c;就是利用了 c:/windows/system32/wbem/mof/目录下的nullevt.mof文件&#xff0c;每分钟都会在一个特定的时间去执行一次的特征 sql语句&#xff1a; ## 通过shell上传这个文件&#xff0c;通过sql语句写…

esp32cam和arduino连接百度云AI识别图像识别接口识别图片内容

要将ESP32-CAM和Arduino连接到百度云AI图像识别接口&#xff0c;然后将识别结果打印到串口&#xff0c;可以按照以下步骤进行操作&#xff1a; 首先&#xff0c;确保您已经创建了百度云的账户&#xff0c;并且在控制台上创建了一个图像识别应用。获取到了API Key和Secret Key。…

惨案后续之---重装python 3.8版本的一系列操作

AssertionError: The environment must specify an action space. 报错 引发的惨案-CSDN博客https://blog.csdn.net/qq_38480311/article/details/135210089 总结&#xff1a; 接上昨日惨案&#xff0c;大意就是 为了解决一个错误&#xff0c;要安装gym0.18.0&#xff0c;经历了…

小信跳房子的题解

原题描述&#xff1a; 时间&#xff1a;1s 空间&#xff1a;256M 题目描述&#xff1a; 小信在玩跳房子游戏&#xff0c;已知跳房子游戏的图表现为一颗完美的具有个节点的二叉树。从根节点依次编号为。节点的左子节点编号为&#xff0c;右子节点编号为。 小信从从节点出发&…

Docker之镜像上传和下载

目录 1.镜像上传 1) 先上百度搜索阿里云 点击以下图片网站 2) 进行登录/注册 3) 使用支付宝...登录 4) 登录后会跳转到首页->点击控制台 5) 点击左上角的三横杠 6) 搜索容器镜像关键词->点击箭头所指 ​ 编辑 7) 进入之后点击实例列表 8) 点击个人实例进入我们的一个…