React翻页器的实现(包含前后端)

 更新时间:2021年08月06日 10:25:57   作者:xiaoff  
本文主要介绍了React翻页器的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

前端

首先需要熟悉前端react中table中的属性pagination

<Pagination onChange={onChange} total={50} />

<Table bordered columns={columns} rowKey={record => record.id} dataSource={dataSource}
       pagination={pagination}/>

其中pagination我们自己去实现的函数,因为在react中只给出静态样例
我们可以去查看react文档中,给的示例的是如下图

 

其中提示我们函数的参数为current及pageSize
那么我们可以按照文档中的提示去思考
是否可以给函数传入当前页和每页的最大数据量

按照上面的思路去设计与写翻页器的函数

const pagination = {
    showQuickJumper:true,
    showSizeChanger:[],
    total: this.example.total,
    defaultCurrent: this.example.page,
    current: this.example.page,
    pageSize: this.example.pageSize,
    hasNextPage: this.example.hasNextPage,
    onShowSizeChange: (current, size) => {
         // 每页的最大数据量
        self.example.pageSize = size;
        // 当前页
        self.example.page = current;
        // 将两个参数封装在一个temple中
        let temple = {
            page : self.example.page,
            pageSize : self.example.pageSize
        };
        // 最终重新去请求函数,将当前页与每页的数据最大量传入重新请求的参数
        self.onFetch(temple);
    },
    onChange(current, pageSize) {
        self.example.pageSize = pageSize;
        self.example.page = current;
        
        let temple = {
            page : self.data.search.page,
            pageSize : self.data.search.pageSize,
        };
        self.onFetch(temple);
    }
};

此刻我们已经实现了翻页器的前端的函数
那么就可以在table中的pagination中传入pagination

后端(以java为例)

首先我们需要写一条SQL

select id from stu limit ${(page - 1)*(pageSize)}, ${pageSize + 1}

解读SQL,有人可能会问pageSize为什么会加1
因为例如

countSize是201 pageSize是20 你直接除结果是10 但是实际上需要的是11

我们后端可以使用mybatis-helper或者自己封装PageList
最终可以将从数据库中查出的数据放到PageList中,再返回给前端
前端会收到后端传入的数据总数(total)每页的最大数量(pageSize)

对于SQL传参的问题

当我们写

SELECT
 id
FROM
 stu
LIMIT 1,10

查出的数据是 218 222 220 217 219 221 8 9 10 12
如果我们把1改成2,那么查出的数据为 222 220 217 219 221 8 9 10 12 14
这就是我们为什么在sql里面写的是(page - 1)*(pageSize)
因为当limit传入10,10的时候才能真正将数据刷新一遍
否则前端传入page=2的时候,我们只在后端更新了一条数据,而重叠了相当于pageSize-1的数据量

注意

当我们SQL写成(page-1)的时候,前端的默认页一定要传入的值从1开始,否则传入0,就会出现负数
我们的后端就会产生报错

关于如何优化limit,可以参考我的另一篇文章「深究MySQL之select优化

到此这篇关于React翻页器的实现(包含前后端)的文章就介绍到这了,更多相关React翻页器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • Redux Toolkit的基本使用示例详解(Redux工具包)

    Redux Toolkit的基本使用示例详解(Redux工具包)

    这篇文章主要介绍了Redux Toolkit的基本使用,本文结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • React实现路由鉴权的实例详解

    React实现路由鉴权的实例详解

    React应用中的路由鉴权是确保用户仅能访问其授权页面的方式,用于已登录或具有访问特定页面所需的权限,这篇文章就来记录下React实现路由鉴权的流程,需要的朋友可以参考下
    2024-07-07
  • React Native 使用Fetch发送网络请求的示例代码

    React Native 使用Fetch发送网络请求的示例代码

    本篇文章主要介绍了React Native 使用Fetch发送网络请求的示例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • redux工作原理讲解及使用方法

    redux工作原理讲解及使用方法

    这篇文章主要介绍了redux工作原理讲解及使用方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-11-11
  • React创建组件的三种方式及其区别是什么

    React创建组件的三种方式及其区别是什么

    在React中,创建组件的三种主要方式是函数式组件、类组件和使用React Hooks的函数式组件,本文就详细的介绍一下如何使用,感兴趣的可以了解一下
    2023-08-08
  • 一文带你了解React中的函数组件

    一文带你了解React中的函数组件

    函数式组件的基本意义就是,组件实际上是一个函数,不是类,下面这篇文章主要给大家介绍了关于React中函数组件的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • React 组件权限控制的实现

    React 组件权限控制的实现

    本文主要介绍了React 组件权限控制的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • reactjs学习解决unknown at rule @tailwind css问题

    reactjs学习解决unknown at rule @tailwind css

    这篇文章主要介绍了reactjs学习解决unknown at rule @tailwind css问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • React-vscode使用jsx语法的问题及解决方法

    React-vscode使用jsx语法的问题及解决方法

    很多朋友在安装插件ES7 React/Redux/GraphQL/React-Native snippets还是不能完全支持jsx语法,纠结是什么原因呢,该如何处理呢,下面小编给大家分享本文帮助大家解决React-vscode使用jsx语法问题,感兴趣的朋友一起看看吧
    2021-06-06
  • React中redux的使用详解

    React中redux的使用详解

    Redux 是一个状态管理库,它可以帮助你管理应用程序中的所有状态,Redux的核心概念之一是Store,它表示整个应用程序的状态,这篇文章给大家介绍React中redux的使用,感兴趣的朋友一起看看吧
    2023-12-12

最新评论