昨年末に、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 を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Win10システムにMySQL 8.0をインストールするときに発生する問題を解決する
>>: Nginxでネットワーク分離を解決した実践記録を詳しく解説
mysqladmin ツールの使用形式は次のとおりです。 mysqladmin [オプション] コ...
プロジェクト要件では、アップロードされたドキュメントの前処理が必要です。ユーザーが doc 形式でド...
目次1. ダウンロードする前に理解しておくべき概念2. 必要なバージョンを選択する3. MySQLサ...
背景<br />フロントエンドを担当する学生は、ページが多すぎると煩雑になるため、開発プ...
目次プレゼンテーション層ビジネスレイヤーコアプラグイン xlsx ExcelインポートExcelエク...
序文: 正規表現のインターセプションに似た、MySql フィールドの文字列から特定の文字を抽出すると...
フロントエンド開発部門は成長し、スタッフも増加し、技術も向上しています。 CSSer はフロントエン...
この記事では、セグメンター効果を実現するためのvue uniappの具体的なコードを参考までに共有し...
この記事は、「24 Days of Linux Desktop」の特別シリーズの一部です。 Open...
この記事では、Linux のユーザーおよびグループのコマンドについて例を挙げて説明します。ご参考まで...
目次なぜ Docker が必要なのでしょうか? Docker デプロイメントの例コードの準備Dock...
目次1. 現実的な背景2. 合意3. マスターを構成する3.1. 起動パラメータの設定3.2. パラ...
この記事では主に、echart を使用してパーセンテージを表示する Vue の円グラフデータ部分を紹...
購入証明書Alibaba CloudのCloud Shield証明書サービスから購入できます。証明書...
この記事では、マウスをドラッグしてdivのサイズを調整するJavaScriptの具体的なコードを参考...