React ページ ターナーの実装 (フロント エンドとバックエンドを含む)

React ページ ターナーの実装 (フロント エンドとバックエンドを含む)

フロントエンド

まず、フロントエンドReactのテーブル内の属性ページネーションに慣れる必要があります。

<ページネーション onChange={onChange} total={50} />

<テーブル境界 columns={columns} rowKey={record => record.id} dataSource={dataSource}
       ページネーション={ページネーション}/>

このうち、ページネーションは私たちが独自に実装した機能です。Reactでは静的なサンプルしか提供されていないため、Reactのドキュメントを確認してください。提供されている例は次のとおりです。

関数のパラメータはcurrentとpageSizeであることを思い出させます
次に、ドキュメントの指示に従って、現在のページとページあたりの最大データ量を関数に渡すことができるかどうかを検討します。

上記のアイデアに従って、ページめくり機能を設計して記述します。

const ページネーション = {
    表示QuickJumper:true,
    表示サイズチェンジャー:[],
    合計: this.example.total,
    デフォルトCurrent: this.example.page、
    現在のページ: this.example.page、
    ページサイズ: this.example.pageSize、
    hasNextPage: this.example.hasNextPage、
    onShowSizeChange: (現在のサイズ) => {
         // ページあたりの最大データ量 self.example.pageSize = size;
        //現在のページ self.example.page = current;
        // 2つのパラメータをテンプルにカプセル化します let temple = {
            ページ: self.example.page,
            ページサイズ: self.example.pageSize
        };
        // 最後に、関数を再リクエストし、現在のページと各ページの最大データ量を再リクエスト パラメータに渡します。self.onFetch(temple);
    },
    onChange(現在のページサイズ) {
        ページサイズをページサイズに変換します。
        現在のページ
        
        寺院 = {
            ページ: self.data.search.page、
            ページサイズ: self.data.search.pageSize、
        };
        self.onFetch(テンプル);
    }
};

この時点で、ページャのフロントエンド関数を実装したので、ページネーションをテーブルのページネーションに渡すことができます。

バックエンド(Javaを例に挙げる)

まずSQLを書く必要があります

stu 制限 ${(page - 1)*(pageSize)}、${pageSize + 1} から ID を選択

SQLを解釈すると、pageSizeが1増加する理由を尋ねる人もいるかもしれない。
例えば

countSizeは201、pageSizeは20なので直接割ると結果は10になるが、実際は11必要である。

mybatis-helperを使用するか、バックエンドでPageListをカプセル化することができます。
最後に、データベースから取得したデータを PageList に格納し、フロントエンドに返すことができます。フロントエンドは、バックエンドから渡されたデータの合計数 (total) と最大ページ数 (pageSize) を受け取ります。

SQLパラメータの受け渡しの問題について

私たちが書くとき

選択
 id
から
 スチュ
制限 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 を渡すと、バックエンドで 1 つのデータのみが更新され、pageSize-1 に相当するデータがオーバーラップされます。

知らせ

SQL を (page-1) として記述する場合、フロントエンドのデフォルトのページ値は 1 から始まる必要があります。そうでない場合、0 が渡されると負の数が表示され、バックエンドでエラーが発生します。

制限を最適化する方法の詳細については、私の別の記事「MySQL Select最適化の詳細な研究」を参照してください。

React ページ ターナーの実装 (フロントエンドとバックエンドを含む) に関するこの記事はこれで終わりです。React ページ ターナーに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • react.js ページフリッププラグインのサンプルコード

<<:  Linux md5sumコマンドの使い方

>>:  Winにmysqlをインストールする詳細な手順

推薦する

Tomcatアーキテクチャの原則をアーキテクチャ設計に分析する

目次1. 学習目標1.1. Tomcatアーキテクチャの設計と原則をマスターして社内スキルを向上させ...

nginx が動的と静的の分離を実装する方法の例

目次server1にnginxをデプロイするサーバーにlnmpを展開するノード3にhttpdをデプロ...

Linuxターミナルでの一般的なMySQL操作コマンドの詳細な説明

仕える: # chkconfig --list すべてのシステム サービスを一覧表示します # ch...

Dockerコンテナ監視とログ管理の実装プロセス分析

Docker の導入規模が大きくなると、コンテナを監視する必要があります。一般的に、Docker に...

MySQLのint主キーの自己増分の問題を解決する

導入MySQL データベースを使用する場合、int を主キーとして使用し、自動インクリメントに設定す...

海外のウェブページのカラーマッチング事例20選共有

この記事では、優れた Web ページのカラー マッチングの事例を 20 件集めて紹介します。これらの...

CSS3で実装された読み込みアニメーション

成果を達成する実装コード <h1>123WORDPRESS.COM</h1>...

WeChatアプレットはウォーターフォールフローのページングスクロール読み込みを実装します

この記事では、WeChatアプレットのウォーターフォールフローページングスクロールロードを実装するた...

MySQL 派生テーブル(Derived Table)の簡単な使用例分析

この記事では、例を使用して、MySQL 派生テーブルの簡単な使用方法を説明します。ご参考までに、詳細...

HTMLページ埋め込み動画とJSコントロール切り替え動画例の詳しい説明

まず、ページにビデオを埋め込むための HTML コードは次のとおりです。コードをコピーコードは次のと...

Linux における「/」と「~」の違いの詳細な説明

「/」はルートディレクトリ、「~」はホームディレクトリです。 Linux ストレージはツリー状にマウ...

CSS3 アドバンス LESS で星空アニメーションを実装するサンプルコード

この記事では、星空アニメーションを実現するための高度な CSS3 LESS のサンプルコードを次のよ...

MySQLチュートリアルではストアドプロシージャを徹底的に理解します

目次1. ストアドプロシージャに関連する概念2. ストアドプロシージャの使用1) ストアドプロシージ...

Vue はファジークエリを実装します - MySQL データベースデータ

目次1. 需要2. 実装3. 結果1. 需要入力ボックスにデータを入力し、入力結果に基づいてデータベ...

MySQLのインデックス設計の原則と一般的なインデックスの違いについて簡単に説明します。

インデックス定義: ディスク上に保存される個別のデータベース構造であり、データ テーブル内のすべての...