最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

React翻頁(yè)器的實(shí)現(xiàn)(包含前后端)

 更新時(shí)間:2021年08月06日 10:25:57   作者:xiaoff  
本文主要介紹了React翻頁(yè)器的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

前端

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

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

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

其中pagination我們自己去實(shí)現(xiàn)的函數(shù),因?yàn)樵趓eact中只給出靜態(tài)樣例
我們可以去查看react文檔中,給的示例的是如下圖

 

其中提示我們函數(shù)的參數(shù)為current及pageSize
那么我們可以按照文檔中的提示去思考
是否可以給函數(shù)傳入當(dāng)前頁(yè)和每頁(yè)的最大數(shù)據(jù)量

按照上面的思路去設(shè)計(jì)與寫(xiě)翻頁(yè)器的函數(shù)

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) => {
         // 每頁(yè)的最大數(shù)據(jù)量
        self.example.pageSize = size;
        // 當(dāng)前頁(yè)
        self.example.page = current;
        // 將兩個(gè)參數(shù)封裝在一個(gè)temple中
        let temple = {
            page : self.example.page,
            pageSize : self.example.pageSize
        };
        // 最終重新去請(qǐng)求函數(shù),將當(dāng)前頁(yè)與每頁(yè)的數(shù)據(jù)最大量傳入重新請(qǐng)求的參數(shù)
        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);
    }
};

此刻我們已經(jīng)實(shí)現(xiàn)了翻頁(yè)器的前端的函數(shù)
那么就可以在table中的pagination中傳入pagination

后端(以java為例)

首先我們需要寫(xiě)一條SQL

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

解讀SQL,有人可能會(huì)問(wèn)pageSize為什么會(huì)加1
因?yàn)槔?/p>

countSize是201 pageSize是20 你直接除結(jié)果是10 但是實(shí)際上需要的是11

我們后端可以使用mybatis-helper或者自己封裝PageList
最終可以將從數(shù)據(jù)庫(kù)中查出的數(shù)據(jù)放到PageList中,再返回給前端
前端會(huì)收到后端傳入的數(shù)據(jù)總數(shù)(total)每頁(yè)的最大數(shù)量(pageSize)

對(duì)于SQL傳參的問(wèn)題

當(dāng)我們寫(xiě)

SELECT
 id
FROM
 stu
LIMIT 1,10

查出的數(shù)據(jù)是 218 222 220 217 219 221 8 9 10 12
如果我們把1改成2,那么查出的數(shù)據(jù)為 222 220 217 219 221 8 9 10 12 14
這就是我們?yōu)槭裁丛趕ql里面寫(xiě)的是(page - 1)*(pageSize)
因?yàn)楫?dāng)limit傳入10,10的時(shí)候才能真正將數(shù)據(jù)刷新一遍
否則前端傳入page=2的時(shí)候,我們只在后端更新了一條數(shù)據(jù),而重疊了相當(dāng)于pageSize-1的數(shù)據(jù)量

注意

當(dāng)我們SQL寫(xiě)成(page-1)的時(shí)候,前端的默認(rèn)頁(yè)一定要傳入的值從1開(kāi)始,否則傳入0,就會(huì)出現(xiàn)負(fù)數(shù)
我們的后端就會(huì)產(chǎn)生報(bào)錯(cuò)

關(guān)于如何優(yōu)化limit,可以參考我的另一篇文章「深究MySQL之select優(yōu)化

到此這篇關(guān)于React翻頁(yè)器的實(shí)現(xiàn)(包含前后端)的文章就介紹到這了,更多相關(guān)React翻頁(yè)器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

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

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

    這篇文章主要介紹了Redux?Toolkit的基本使用,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-12-12
  • React實(shí)現(xiàn)路由鑒權(quán)的實(shí)例詳解

    React實(shí)現(xiàn)路由鑒權(quán)的實(shí)例詳解

    React應(yīng)用中的路由鑒權(quán)是確保用戶僅能訪問(wèn)其授權(quán)頁(yè)面的方式,用于已登錄或具有訪問(wèn)特定頁(yè)面所需的權(quán)限,這篇文章就來(lái)記錄下React實(shí)現(xiàn)路由鑒權(quán)的流程,需要的朋友可以參考下
    2024-07-07
  • React Native 使用Fetch發(fā)送網(wǎng)絡(luò)請(qǐng)求的示例代碼

    React Native 使用Fetch發(fā)送網(wǎng)絡(luò)請(qǐng)求的示例代碼

    本篇文章主要介紹了React Native 使用Fetch發(fā)送網(wǎng)絡(luò)請(qǐng)求的示例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • redux工作原理講解及使用方法

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

    這篇文章主要介紹了redux工作原理講解及使用方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2021-11-11
  • React創(chuàng)建組件的三種方式及其區(qū)別是什么

    React創(chuàng)建組件的三種方式及其區(qū)別是什么

    在React中,創(chuàng)建組件的三種主要方式是函數(shù)式組件、類組件和使用React Hooks的函數(shù)式組件,本文就詳細(xì)的介紹一下如何使用,感興趣的可以了解一下
    2023-08-08
  • 一文帶你了解React中的函數(shù)組件

    一文帶你了解React中的函數(shù)組件

    函數(shù)式組件的基本意義就是,組件實(shí)際上是一個(gè)函數(shù),不是類,下面這篇文章主要給大家介紹了關(guān)于React中函數(shù)組件的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • React?組件權(quán)限控制的實(shí)現(xiàn)

    React?組件權(quán)限控制的實(shí)現(xiàn)

    本文主要介紹了React?組件權(quán)限控制的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • reactjs學(xué)習(xí)解決unknown at rule @tailwind css問(wèn)題

    reactjs學(xué)習(xí)解決unknown at rule @tailwind css

    這篇文章主要介紹了reactjs學(xué)習(xí)解決unknown at rule @tailwind css問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • React-vscode使用jsx語(yǔ)法的問(wèn)題及解決方法

    React-vscode使用jsx語(yǔ)法的問(wèn)題及解決方法

    很多朋友在安裝插件ES7 React/Redux/GraphQL/React-Native snippets還是不能完全支持jsx語(yǔ)法,糾結(jié)是什么原因呢,該如何處理呢,下面小編給大家分享本文幫助大家解決React-vscode使用jsx語(yǔ)法問(wèn)題,感興趣的朋友一起看看吧
    2021-06-06
  • React中redux的使用詳解

    React中redux的使用詳解

    Redux 是一個(gè)狀態(tài)管理庫(kù),它可以幫助你管理應(yīng)用程序中的所有狀態(tài),Redux的核心概念之一是Store,它表示整個(gè)應(yīng)用程序的狀態(tài),這篇文章給大家介紹React中redux的使用,感興趣的朋友一起看看吧
    2023-12-12

最新評(píng)論

莱阳市| 颍上县| 大连市| 东宁县| 奇台县| 达日县| 剑河县| 钟山县| 武威市| 西林县| 休宁县| 莫力| 陕西省| 延川县| 尉氏县| 安泽县| 临澧县| 汉阴县| 微山县| 建水县| 黄石市| 邯郸市| 扶余县| 稻城县| 和田县| 阿荣旗| 祁门县| 利辛县| 株洲县| 韶山市| 和平县| 天水市| 赞皇县| 吉木萨尔县| 卫辉市| 南召县| 抚顺县| 澎湖县| 定边县| 改则县| 清新县|