ページにデータを表示するReactメソッド

ページにデータを表示するReactメソッド

昨年末に、Reactを使ってコンポーネント化されたページを書いてみました!

ページごとにデータを表示するリストページがあります

3つの主要コンポーネントを表示します: 親コンポーネント listBox、リストコンポーネント List、ボタンコンポーネント PageButton

親コンポーネントリストボックス

const listData = [{
    キー:"001",
    id:"001",
    タイトル:「Webstorm は GitHub に接続して簡単に倉庫を管理できます」
    時間:"2016-12-01",
    タグ:" git ",
    内容:"666666666666666!"
}] // 複数のデータに対しても同様です。class listBox extends Component {

    コンストラクタ(props){
        スーパー(小道具);
        this.pageNext = this.pageNext.bind(this);
        this.setPage=this.setPage.bind(this);
        この状態 = {
            indexList:[], //現在レンダリングされているページデータ totalData:listData,
            current: 1, //現在のページ番号pageSize:4, //ページあたりに表示される項目数goValue:0, //インデックスへ移動する項目数
            totalPage:0, //ページ総数};

    }

    コンポーネントWillMount(){
        //ページの総数を設定する this.setState({
            totalPage:Math.ceil( this.state.totalData.length/this.state.pageSize),
        })
        this.pageNext(this.state.goValue)

    }

    //コンテンツを設定する setPage(num){
        this.setState({
            インデックスリスト:this.state.totalData.slice(num,num+this.state.pageSize)
        })
    }


    ページ次 (数値) {
        this.setPage(数値)
    }



    与える() {

        戻る (
            <div className="メイン">
                <div className="トップバー">
                </div>
                <div className="リスト">
                    <ul className="インデックス">
                        {this.state.indexList.map(関数 (続き) {
                            <リスト {...cont} /> を返します。
                        })}
                    </ul>

                    <PageButton { ...this.state } pageNext={this.pageNext} />

                </div>
            </div>
        );
    }
}

リストコンポーネント

クラスリストはComponentを拡張します{
    コンストラクタ(props) {
        スーパー(小道具);
    }

    与える() {
        const { idd、タイトル、時間、タグ、内容 } = this.props

        戻る (
            <li id={idd}>
                <リンク先={`/list/listmore/${idd}`} >
                    <h3>{タイトル}</h3>
                    <div クラス名="アイコン">
                        <i className="fa fa-calendar"></i>
                        <span>{time} に公開されました </span>
                        <i className="fa fa-sitemap"></i>
                        <span>{tag} に分類されています</span>
                        <i className="fa fa-edit"></i>
                        <span>まだコメントはありません</span>
                    </div>
                    <p>{コンテンツ}</p>
                    <span className="more">もっと見る</span>
                </リンク>
            </li>
        );
    }
}

ボタンコンポーネント PageButton

クラスpageButtonはComponentを拡張します{

    コンストラクタ(props) {
        スーパー(小道具);
        this.setNext=this.setNext.bind(this);
        this.setUp = this.setUp.bind(this);
        this.state={
            番号: 0,
            ページ番号:this.props.current
        }
    }

    //次のページ setNext(){
        if(this.state.pagenum < this.props.totalPage){
            this.setState({
                num:this.state.num + this.props.pageSize、
                ページ番号:this.state.pagenum + 1
            }、関数 () {
                コンソールログ(この状態)
                this.props.pageNext(this.state.num)
            })
        }
    }

    //前のページsetUp(){
        if(this.state.pagenum > 1){
            this.setState({
                num:this.state.num - this.props.pageSize、
                ページ番号:this.state.pagenum - 1
            }、関数 () {
                コンソールログ(この状態)
                this.props.pageNext(this.state.num)
            })
        }
    }

    与える() {
        戻る (
            <div className="ページ変更">
                <span onClick={ this.setUp } >前のページ</span>
                <span>{ this.state.pagenum } ページ / { this.props.totalPage } ページ </span>
                <span onClick={ this.setNext }>次のページ</span>
            </div>
        );
    }
} 

これで、React でページング モードでデータを表示する方法についての記事は終了です。React でのページング モードに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Reactはページング効果を実装する
  • 自分でReactを使ってページングコンポーネントを書いてみる(まとめ)
  • Reactjsはユニバーサルページングコンポーネントのサンプルコードを実装します

<<:  Win10システムにMySQL 8.0をインストールするときに発生する問題を解決する

>>:  Nginxでネットワーク分離を解決した実践記録を詳しく解説

推薦する

MySQL での mysqladmin 日常管理コマンドの概要 (必読)

mysqladmin ツールの使用形式は次のとおりです。 mysqladmin [オプション] コ...

CentOS で LibreOffice を使用してドキュメント形式を変換する方法

プロジェクト要件では、アップロードされたドキュメントの前処理が必要です。ユーザーが doc 形式でド...

WindowsでのMySQLインストールチュートリアルの詳細な紹介

目次1. ダウンロードする前に理解しておくべき概念2. 必要なバージョンを選択する3. MySQLサ...

コンポーネントベースのフロントエンド開発プロセスの詳細な説明

背景<br />フロントエンドを担当する学生は、ページが多すぎると煩雑になるため、開発プ...

ReactはExcelファイルのインポートとエクスポートを実装します

目次プレゼンテーション層ビジネスレイヤーコアプラグイン xlsx ExcelインポートExcelエク...

Mysql 文字列の傍受と指定された文字列内のデータの取得

序文: 正規表現のインターセプションに似た、MySql フィールドの文字列から特定の文字を抽出すると...

Webフロントエンド開発CSS関連チームコラボレーション

フロントエンド開発部門は成長し、スタッフも増加し、技術も向上しています。 CSSer はフロントエン...

Vue uniapp はセグメンター効果を実現します

この記事では、セグメンター効果を実現するためのvue uniappの具体的なコードを参考までに共有し...

Linux デスクトップ用に Openbox を設定する方法 (推奨)

この記事は、「24 Days of Linux Desktop」の特別シリーズの一部です。 Open...

Linux ユーザーとグループのコマンド例分析 [切り替え、ユーザーの追加、権限制御など]

この記事では、Linux のユーザーおよびグループのコマンドについて例を挙げて説明します。ご参考まで...

Docker を使用して Go Web アプリケーションをデプロイする方法

目次なぜ Docker が必要なのでしょうか? Docker デプロイメントの例コードの準備Dock...

MySQL8.0.18 複数マスターと 1 スレーブの構成

目次1. 現実的な背景2. 合意3. マスターを構成する3.1. 起動パラメータの設定3.2. パラ...

Vueはechart円グラフの凡例のパーセンテージを表示するメソッドを実装します

この記事では主に、echart を使用してパーセンテージを表示する Vue の円グラフデータ部分を紹...

Nginx で https をアップグレードする方法

購入証明書Alibaba CloudのCloud Shield証明書サービスから購入できます。証明書...

JavaScript はマウスのドラッグを実装して div のサイズを調整します

この記事では、マウスをドラッグしてdivのサイズを調整するJavaScriptの具体的なコードを参考...