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をインストールする詳細な手順

推薦する

nginx で第 3 レベルドメイン名を設定する方法の例

問題の説明nginx を設定することで、異なるポートを介して異なる Web アプリケーションにアクセ...

Vue プロジェクトで垂直テーブルを 2 つの方法で実装するアイデアの分析

問題の説明私たちのプロジェクトでは、水平方向のテーブルが一般的ですが、必要に応じて垂直方向のテーブル...

Alpine イメージに Ansible サービスを追加する方法

apk add ansible を使用して、alpine イメージに ansible サービスを追加...

UI を通じて Docker を管理する方法

Docker はますます多くのシナリオで使用されています。コマンドラインツールに慣れていない人にとっ...

要素のフォーム要素の使用の概要

フォーム要素はたくさんあります。簡単にまとめると、次のようになります。私のやり方では、主にテキスト ...

ネイティブ js で呼び出し、適用、バインドを実装する方法

1. 呼び出しを実装するステップ:関数をオブジェクトのプロパティとして設定します。これを関数に割り当...

Centos7でファイルをバックアップするときは、バックアップファイルにバックアップの日付を追加します

Linux は、システム内のデバイス、インターフェース、ファイル、スタートアップ、アプリケーション ...

HTML入力ファイルコントロールはアップロードされるファイルの種類を制限します

入力ファイルの HTML コントロールを Web ページに追加します。 <input id=&...

CSS3で実装された水平ヘッダーメニュー

結果:実装コードhtml <nav class="dropdownmenu"...

MySQL 関数インデックス最適化ソリューション

MySQL を使用する場合、多くの開発者は一部の列に対して関数計算を実行することが多く、その結果、イ...

React Hooks の一般的な使用シナリオ (概要)

目次1. ステートフック1. 基本的な使い方2. 更新3. 合併を実現する4. 遅延初期化状態5. ...

MySQL/MariaDB でピボット テーブルを実装する方法のサンプル コード

前回の記事では、Oracle でピボット テーブルを実装するいくつかの方法を紹介しました。今日は、同...

シンプルな商品スクリーニング機能を実現するjs

この記事の例では、商品スクリーニング機能を実装するためのjsの具体的なコードを参考までに共有していま...

URLパラメータに基づくNginx転送

使用シナリオ:ジャンプ パスは、傍受された URL に応じて動的に構成する必要があります。これは、イ...

nginx がどのようにして高いパフォーマンスとスケーラビリティを実現するのかを深く理解する

NGINX の全体的なアーキテクチャは、連携して動作する一連のプロセスによって特徴付けられます。メイ...