ページにデータを表示する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 コマンドをキャンセルしたい場合はどうすればいいですか?

間違った mysql コマンドを入力したのでキャンセルしたいです。どうすればいいですか? ctrl ...

hr 水平線スタイルの例コード

コードをコピーコードは次のとおりです。 <hr style="width:490px...

Windows Server 2016 AD サーバーをセットアップする手順 (画像とテキスト)

導入: AD は Active Directory の略称で、中国語では Active Direct...

MySQL ストアド プロシージャ関連の権限変更の問題

MySQL データベースを使用すると、他のユーザーが定義したストアド プロシージャを他のユーザーが変...

webpack と rollup を使用してコンポーネント ライブラリをパッケージ化する方法

序文以前、ローディングスタイルのコンポーネントを作成しました。コードの再利用性を実現するために、この...

JavaScript 配列重複排除ソリューション

目次方法1: set: データ型ではなくデータ構造であり、メンバーは一意である方法2: オブジェクト...

Windows Server 2016 に Docker をインストールする方法

最近、Microsoft は Docker をネイティブにサポートする Windows Server...

Linux で JDK をインストールして環境変数を設定する方法 (この記事で十分です)

目次1. Linuxのビット数を確認する2. JDKをダウンロードする3. JDKをインストールする...

スクロールバーがスペースを占有することで発生するバグを修正しました

背景このバグは滾動條占據空間ことで発生していました。いくつかの情報を確認して、ようやく解決しました。...

MACでMYSQLデータベースのパスワードを忘れた場合の解決策

Mac オペレーティングシステムで MYSQL データベースのパスワードを忘れた場合の簡単な解決策1...

実務経験7年のフロントエンドスーパーバイザーによる経験共有

今日はベテランの貴重な経験を共有します。著者は技術管理の経験が7年あり、多い時は80人以上を率いてい...

Docker rocketmq デプロイメントの実装例

目次準備展開プロセスRocketMQ の初体験関連する質問ヘルプドキュメント私は最近 RocketM...

JS を使って CSS3 で丸い角を実装する方法

IE で CSS3 を使用して角を丸くする方法を探していたときに、例を見つけました。まだテストして...

AngularパイプラインPIPEの紹介と使い方

序文PIPE、パイプラインと翻訳されます。 Angular パイプは、HTML コンポーネントで宣言...

jQueryアニメーションを理解するのに役立つ記事

目次1. 要素の表示と非表示を制御する show() hide() 2. 要素の透明度を制御する f...