博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用 React 分页显示数据
阅读量:6446 次
发布时间:2019-06-23

本文共 3224 字,大约阅读时间需要 10 分钟。

去年年底,尝试着用react写个组件化的页面!

里面有一个list页面弄了一下数据的分页展示

展示一下主要三个组件:父组件listBox、列表组件List、按钮组件PageButton

父组件listBox

const listData = [{    key:"001",    idd:"001",    title:"webstorm连接github,方便的管理仓库",    time:"2016-12-01",    tag:" git ",    contents:"66666666666666!"}] //等等等多条数据class listBox extends Component {    constructor(props){        super(props);        this.pageNext=this.pageNext.bind(this);        this.setPage=this.setPage.bind(this);        this.state = {            indexList:[],//当前渲染的页面数据            totalData:listData,            current: 1, //当前页码            pageSize:4, //每页显示的条数            goValue:0,  //要去的条数index            totalPage:0,//总页数        };    }    componentWillMount(){        //设置总页数        this.setState({            totalPage:Math.ceil( this.state.totalData.length/this.state.pageSize),        })        this.pageNext(this.state.goValue)    }    //设置内容    setPage(num){        this.setState({            indexList:this.state.totalData.slice(num,num+this.state.pageSize)        })    }    pageNext (num) {        this.setPage(num)    }    render() {        return (            
    {this.state.indexList.map(function (cont) { return
    })}
); }}

列表组件List

class list extends Component {    constructor(props) {        super(props);    }    render() {        const { idd,title,time,tag,contents } = this.props        return (            
  • {title}

    发表于 {time}
    分类于 {tag}
    暂无评论

    {contents}

    more
  • ); }}

    按钮组件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 (            
    上一页
    { this.state.pagenum }页/ { this.props.totalPage }页
    下一页
    ); }}
    image

    转载地址:http://ojvwo.baihongyu.com/

    你可能感兴趣的文章
    「Do.007」Android实战项目(2)——使用Github进行版本管理
    查看>>
    Mysql on delete cascade 总结
    查看>>
    一句话概括
    查看>>
    js头像裁剪实现——canvas+Jcrop+jQuery
    查看>>
    作为php了解一下共享内存的概念及优缺点
    查看>>
    记一次在阿里云上创建VPC网络
    查看>>
    组件库构建过程
    查看>>
    页面缓存的操作(搜索历史记录),页面搜索功能实现
    查看>>
    正则表达式之量词
    查看>>
    ansible基于密码sudo执行命令
    查看>>
    https服务的原理和实现
    查看>>
    前端应该知晓的PWA
    查看>>
    我们不一样:for...of与for...in
    查看>>
    网站缓存详解
    查看>>
    CRM WebClient UI和Hybris里工作中心跳转的url生成逻辑
    查看>>
    phpstudy2018 升级mysql
    查看>>
    ElasticSearch6.2.3+head插件安装
    查看>>
    ReactV16.3,即将更改的生命周期
    查看>>
    弹性布局示例
    查看>>
    http cookie解释
    查看>>