react分頁顯示數(shù)據(jù)的方法
去年年底,嘗試著用react寫個(gè)組件化的頁面!
里面有一個(gè)list頁面弄了一下數(shù)據(jù)的分頁展示
展示一下主要三個(gè)組件:父組件listBox、列表組件List、按鈕組件PageButton
父組件listBox
const listData = [{ key:"001", idd:"001", title:"webstorm連接github,方便的管理倉庫", time:"2016-12-01", tag:" git ", contents:"66666666666666!" }] //等等等多條數(shù)據(jù) class listBox extends Component { constructor(props){ super(props); this.pageNext=this.pageNext.bind(this); this.setPage=this.setPage.bind(this); this.state = { indexList:[],//當(dāng)前渲染的頁面數(shù)據(jù) totalData:listData, current: 1, //當(dāng)前頁碼 pageSize:4, //每頁顯示的條數(shù) goValue:0, //要去的條數(shù)index totalPage:0,//總頁數(shù) }; } componentWillMount(){ //設(shè)置總頁數(shù) this.setState({ totalPage:Math.ceil( this.state.totalData.length/this.state.pageSize), }) this.pageNext(this.state.goValue) } //設(shè)置內(nèi)容 setPage(num){ this.setState({ indexList:this.state.totalData.slice(num,num+this.state.pageSize) }) } pageNext (num) { this.setPage(num) } render() { return ( <div className="main"> <div className="top_bar"> </div> <div className="lists"> <ul className="index"> {this.state.indexList.map(function (cont) { return <List {...cont} /> })} </ul> <PageButton { ...this.state } pageNext={this.pageNext} /> </div> </div> ); } }
列表組件List
class list extends Component { constructor(props) { super(props); } render() { const { idd,title,time,tag,contents } = this.props return ( <li id={idd}> <Link to={`/list/listmore/${idd}`} > <h3>{title}</h3> <div className="icon"> <i className="fa fa-calendar"></i> <span>發(fā)表于 {time} </span> <i className="fa fa-sitemap"></i> <span>分類于 {tag} </span> <i className="fa fa-edit"></i> <span>暫無評(píng)論</span> </div> <p>{contents}</p> <span className="more">more</span> </Link> </li> ); } }
按鈕組件PageButton
class pageButton extends Component { constructor(props) { super(props); this.setNext=this.setNext.bind(this); this.setUp=this.setUp.bind(this); this.state={ num: 0, pagenum:this.props.current } } //下一頁 setNext(){ if(this.state.pagenum < this.props.totalPage){ this.setState({ num:this.state.num + this.props.pageSize, pagenum:this.state.pagenum + 1 },function () { console.log(this.state) this.props.pageNext(this.state.num) }) } } //上一頁 setUp(){ if(this.state.pagenum > 1){ this.setState({ num:this.state.num - this.props.pageSize, pagenum:this.state.pagenum - 1 },function () { console.log(this.state) this.props.pageNext(this.state.num) }) } } render() { return ( <div className="change_page"> <span onClick={ this.setUp } >上一頁</span> <span>{ this.state.pagenum }頁/ { this.props.totalPage }頁</span> <span onClick={ this.setNext }>下一頁</span> </div> ); } }
到此這篇關(guān)于react分頁顯示數(shù)據(jù)的方法的文章就介紹到這了,更多相關(guān)react分頁顯示內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
React?Hooks使用startTransition與useTransition教程示例
這篇文章主要為大家介紹了React?Hooks使用startTransition與useTransition教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01React Native預(yù)設(shè)占位placeholder的使用
本篇文章主要介紹了React Native預(yù)設(shè)占位placeholder的使用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09淺談react-native熱更新react-native-pushy集成遇到的問題
下面小編就為大家?guī)硪黄獪\談react-native熱更新react-native-pushy集成遇到的問題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09React Native AsyncStorage本地存儲(chǔ)工具類
這篇文章主要為大家分享了React Native AsyncStorage本地存儲(chǔ)工具類,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10詳解create-react-app 自定義 eslint 配置
這篇文章主要介紹了詳解create-react-app 自定義 eslint 配置,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-06-06react-router-dom v6版本跳轉(zhuǎn)路徑的實(shí)現(xiàn)方法
這篇文章主要介紹了react-router-dom v6版本跳轉(zhuǎn)路徑的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03