微信小程序——分页组件的创建与使用

news2024/12/24 9:08:18

在这里插入图片描述

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。
🍎个人主页:Java Fans的博客
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏:微信小程序学习分享
✨特色专栏:国学周更-心性养成之路
🥭本文内容:微信小程序——分页组件的创建与使用

文章目录

    • 一、创建 pagination 分页组件
      • 1、前端页面 pagination.wxml 代码分享
      • 2、样式 pagination.wxss 代码分享
      • 3、逻辑 pagination.js 代码分享
    • 二、使用 pagination 分页组件

在这里插入图片描述

一、创建 pagination 分页组件

在项目的根目录下创建一个名为 pagination 的文件夹,用于存放分页组件相关的文件。

在这里插入图片描述

1、前端页面 pagination.wxml 代码分享

在pagination文件夹中创建一个名为pagination.wxml的文件,用于编写分页组件的模板代码。可以参考以下示例代码:

<view class="pagination">
  <button class="prev-btn" bindtap="prevPage">上一页</button>
  <text class="page-info">{{currentPage}}/{{totalPage}}</text>
  <button class="next-btn" bindtap="nextPage">下一页</button>
</view>

在这个示例代码中,我们使用了小程序的<view>标签来创建一个容器,设置了一个名为pagination的class,用于设置分页组件的样式。

在容器中,我们使用了<button>标签来创建上一页和下一页按钮,并通过bindtap属性绑定了prevPage和nextPage方法。

在容器中,我们使用了<text>标签来显示当前页码和总页数,并通过双花括号{{}}的方式绑定了currentPage和totalPage变量。

2、样式 pagination.wxss 代码分享

在pagination文件夹中创建一个名为pagination.wxss的文件,用于编写分页组件的样式代码。可以参考以下示例代码:

.pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 10px;
}

.prev-btn,
.next-btn {
  padding: 5px 10px;
  background-color: #ccc;
  color: #fff;
  border-radius: 5px;
  margin: 0 5px;
}

.page-info {
  font-size: 14px;
}

3、逻辑 pagination.js 代码分享

在pagination文件夹中创建一个名为pagination.js的文件,用于编写分页组件的逻辑代码。可以参考以下示例代码:

Component({
  properties: {
    total: {
      type: Number,
      value: 0
    },
    pageSize: {
      type: Number,
      value: 10
    },
    currentPage: {
      type: Number,
      value: 1
    }
  },
  methods: {
    prevPage() {
      if (this.data.currentPage > 1) {
        this.setData({
          currentPage: this.data.currentPage - 1
        });
        this.triggerEvent('change', { page: this.data.currentPage });
      }
    },
    nextPage() {
      if (this.data.currentPage < this.data.totalPage) {
        this.setData({
          currentPage: this.data.currentPage + 1
        });
        this.triggerEvent('change', { page: this.data.currentPage });
      }
    }
  },
  lifetimes: {
    attached() {
      this.setData({
        totalPage: Math.ceil(this.data.total / this.data.pageSize)
      });
    }
  }
});

在这个示例代码中,我们使用了小程序的Component方法来创建一个分页组件。在properties中定义了三个属性:total表示总记录数,pageSize表示每页显示的记录数,currentPage表示当前页码。

在methods中定义了两个方法:prevPage用于处理上一页按钮的点击事件,nextPage用于处理下一页按钮的点击事件。在这两个方法中,我们通过修改currentPage的值来实现页码的切换,并通过triggerEvent方法触发change事件,将当前页码传递给父组件。

在lifetimes的attached生命周期函数中,我们计算了总页数totalPage,并将其保存在组件的data中。

二、使用 pagination 分页组件

在这里插入图片描述

在小程序的页面中使用分页组件的步骤如下:

1、在小程序的页面中引入分页组件。 可以使用usingComponents关键字来引入组件,或者使用require方法动态引入组件。以下是两种引入方式的示例代码:
使用usingComponents关键字引入组件:

{
  "usingComponents": {
    "pagination": "/path/to/pagination"
  }
}

2、使用require方法动态引入组件:

const Pagination = require('/path/to/pagination');

3、在小程序的页面中使用分页组件。 可以在页面的wxml文件中使用<pagination>标签来引入分页组件,并通过属性绑定的方式传递数据和事件。以下是一个示例代码:

<view>
  <!-- 其他页面内容 -->
  <pagination total="{{total}}" current="{{currentPage}}" bind:change="onPageChange"></pagination>
</view>

在这个示例代码中,我们使用了<pagination>标签来引入分页组件。通过total属性传递总记录数,通过current属性传递当前页码,通过bind:change事件绑定方式绑定了onPageChange方法。

4、在小程序的页面中编写分页查询的逻辑代码。 可以在页面的js文件中编写分页查询的逻辑代码。以下是一个示例代码:

Page({
  data: {
    total: 100, // 总记录数
    currentPage: 1 // 当前页码
  },
  onPageChange(event) {
    const { page } = event.detail;
    // 根据页码查询数据
    // 更新页面数据
  }
});

在这个示例代码中,我们在页面的data中定义了total和currentPage两个变量,分别表示总记录数和当前页码。

在onPageChange方法中,我们通过event.detail获取到分页组件传递的数据,其中page表示当前页码。在实际开发中,你可以根据页码查询数据,并更新页面的数据。


  码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。

在这里插入图片描述

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

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

相关文章

使用Aspose.Words将word转PDF并且去水印。

&#x1f61c;作 者&#xff1a;是江迪呀✒️本文关键词&#xff1a;Java、工具类、转换、word转pdf、Aspose.Words、后端☀️每日 一言&#xff1a;只要思想不滑坡&#xff0c;办法总比困难多。 前言 在我们日常开发中经常会有将word文档转为PDF的场景&#xff0…

深入理解循环队列----循环数组实现ArrayDeque

我们知道队列这种数据结构的物理实现方式主要还是两种&#xff0c;一种是链队列&#xff08;自定义节点类&#xff09;&#xff0c;另一种则是使用数组实现&#xff0c;两者各有优势。此处我们将要介绍的循环队列其实是队列的一种具体实现&#xff0c;由于一般的数组实现的队列…

IP地址分类

IP地址是TCP/IP协议中非常关键的要素之一&#xff0c;它用于标识网络中的设备和主机。根据使用版本的不同&#xff0c;IP地址分为IPv4和IPv6两种类型。 IPv4&#xff08;Internet Protocol version 4&#xff09;是IP地址的第四个版本&#xff0c;采用32位二进制数来表示IP地址…

JavaWeb之EL表达式和JSTL标签库

文章目录 EL表达式基本介绍EL表达式搜索域数据的顺序EL表达式输出Bean的普通属性&#xff0c;数组属性&#xff0c;List集合属性&#xff0c;Map集合属性EL表达式 - 运算关系运算逻辑运算算数运算empty运算三元运算. 点运算 和 [] 中括号运算符 EL表达式的11个隐含对象EL获取四…

Java中Thread 类的五种基本用法(简介)

目录 一.线程创建 Lambda创建一个线程 基础格式 举例 运行结果 二.线程中断 第一种:设置变量方法 举例 运行结果 第二种:interrupted&#xff08;&#xff09;方法 举例 运行结果 三.线程等待 举例 运行结果 四.线程休眠 举例 五.获取线程实例 举例 运行结果 …

如何用梯度下降法求解数学建模的拟合问题——以logistics增长问题为例

引言 众所周知的是&#xff0c;在大学课程中一般只会教授一种拟合方法(也即参数估计方法)——最小二乘法。这是一种直接求解的方法&#xff0c;非常的有效&#xff0c;不仅是损失最小解&#xff0c;而且是最大似然解。只不过&#xff0c;有一个缺点&#xff0c;它只能解决线性…

Jenkins配置仅合并代码后触发流水线

使用GitLabJenkins集成&#xff0c; 使用Jenkins的Generic WebHook插件&#xff1b;此插件可以作为各个工具间集成使用的通用方式&#xff0c;但是遇到些场景需要写些代码。关于 “合并代码后触发Pipeline”的配置方式&#xff0c; 其实思路简单&#xff0c;实现和让我描述起来…

电脑怎样连接打印机?分享4个简单操作!

为了更方便学习&#xff0c;我买了一个打印机来打印需要用的资料&#xff0c;但是操作了半天还是没连接上&#xff0c;想请问一下有经验的朋友是怎么将打印机与电脑进行连接的呢&#xff1f; 在现代人的工作和生活中&#xff0c;打印机是一个重要的设备。我们可以利用打印机进行…

一文搞懂String、StringBuffer、StringBuilder三者的对比以及扩容机制

String:不可变的字符序列&#xff1b;底层使用char[]存储StringBuffer:可变的字符序列&#xff1b;线程安全的&#xff0c;效率低&#xff1b;底层使用char[]存储StringBuilder:可变的字符序列&#xff1b;jdk5.0新增的&#xff0c;线程不安全的&#xff0c;效率高&#xff1b;…

行为型设计模式09-中介者模式

&#x1f9d1;‍&#x1f4bb;作者&#xff1a;猫十二懿 ❤️‍&#x1f525;账号&#xff1a;CSDN 、掘金 、个人博客 、Github &#x1f389;公众号&#xff1a;猫十二懿 中介者模式 1、中介者模式介绍 中介者模式&#xff08;Mediator Pattern&#xff09;是一种行为设计模…

【MySQL数据库】MySQL 高级SQL 语句一

[TOC](MySQL 高级SQL 语句 一、MySQL 高级SQL 语句1.1select -显示表格中一个或数个字段的所有数据记录1.2distinct不显示重复的数据记录1.3where有条件查询1.4and、or且 或1.5in 显示已知的值的数据记录1.6between 显示两个值范围内的数据记录1.7通配符&#xff0c;通常通配符…

都2023年了,JavaScript ES6后的新(lao)特性,你用起来了吗?

前言 JavaScript ES6 指的是 ECMAScript 6&#xff0c;它是 JavaScript 语言第六版的规范。ES6 包含了很多新特性和语法糖&#xff0c;涵盖了从 ES6 开始至今所增加的所有特性。 因此&#xff0c;ES6 新特性是指从 ES6 开始新增到当前时刻所有的新特性&#xff0c;包括但不限…

FPGA XDMA 中断模式实现 PCIE X8 HDMI视频采集 提供工程源码和QT上位机源码

目录 1、前言2、我已有的PCIE方案3、PCIE理论4、总体设计思路和方案视频采集和缓存XDMA简介XDMA中断模式QT上位机及其源码 5、vivado工程详解6、上板调试验证7、福利&#xff1a;工程代码的获取 1、前言 PCIE&#xff08;PCI Express&#xff09;采用了目前业内流行的点对点串…

四肽-21——改善皮肤紧实感、光滑感和弹性

简介 四肽-21是一种来源于皮肤自身的四胜肽&#xff0c;它结构独特、能高效的促进细胞外基质合成&#xff0c;从而减少各种皱纹和改善皮肤衰老现象。与市场上非常受欢迎的基肽(Matrixyl&#xff09;相比&#xff0c;四肽-21效果更为突出。 Tetrapeptide-21 is a type of tetra…

LeetCode - #85 最大矩形(Top 100)

文章目录 前言1. 描述2. 示例3. 答案题解 1题解 2 关于我们 前言 本题为 LeetCode 前 100 高频题 本题由于没有合适答案为以往遗留问题&#xff0c;最近有时间将以往遗留问题一一完善。 我们社区陆续会将顾毅&#xff08;Netflix 增长黑客&#xff0c;《iOS 面试之道》作者&am…

解密后无法加载到指定模版,且模版名为空

问题如图&#xff1a; 原因&#xff1a;因为改变了项目的集成管理&#xff0c;导致变量丢失

Redis原理 - 五种数据类型的底层结构关系

原文首更地址&#xff0c;阅读效果更佳&#xff01; Redis原理 - 五种数据类型的底层结构关系 | CoderMast编程桅杆https://www.codermast.com/database/redis/base-datatype-implement.html #字符串对象String String 是 Redis 中最常见的数据存储类型。 其基本编码方式是 …

安卓蓝牙SDP协议数据包

1. SDP概念 我们想一想&#xff0c;两个陌生的设备&#xff08;之前未有过交互&#xff09;如何去发现对方支持什么服务呢&#xff1f;比如Host端的Controller怎么知道远程蓝牙设备是蓝牙耳机还是HID遥控器呢&#xff1f;我们需要一种协议&#xff0c;这种协议在蓝牙设备配对成…

Git-Desktop【使用说明】

仓库操作 简单的创建仓库、删除仓库 删除点击 Remove 即可 文件操作 1、提交文件到本地仓库 2、修改文件 Git没有修改文件这一说&#xff0c;它只会再次提交一个新的版本到仓库中&#xff0c;提交修改后的文件其实是在仓库创建了一个新的文件&#xff0c;只不过是一个不同的…

Optano.Modeling 简单教程

前言 在工作中遇到两个需求&#xff0c;将两个数学公式用 .NET 的数学库找到数学公式中某个未知数的最优解&#xff0c;我尝试了几个数学库都没有办法完美解决我的需求&#xff0c;直到找到 Optano.Modeling Optano.Modeling 官网&#xff1a;Optano.Modeling 官网 Optano.Mo…