直播平台搭建源码,react+ts实现分页全部功能
直播平台搭建源码,react+ts实现分页全部功能
index.tsx代码
1 | <br>import React, { Component } from 'react' ;<br>import Header from '../../component/header' <br>import Footer from '../../component/footer' <br>import { Pagination } from 'antd' ;<br>import axios from 'axios' ;<br>type Props = {<br> history:any<br> data:any<br>}<br> class Index extends React.Component<Props>{<br> constructor(props:any){<br> super(props)<br> this.state={<br> list:[],<br> pPageCfg: {<br> page_number: sessionStorage.getItem( "currentPages" ) || 1,<br> page_size: 8,<br> },<br> setPageCfg: {<br> currentPage: 1,<br> totalPage: 24,<br> },<br> }<br> this.lists=this.lists.bind(this)<br> }<br> <br> itemRender(current:any, type:any, originalElement:any) { if (type === 'prev' ) { return <a>上一页</ a>; } if (type === 'next' ) { return <a>下一页</ a>; } return originalElement; }<br> getPage=(page:any, page_size = 8)=> {<br> sessionStorage.setItem( "currentPages" , encodeURIComponent(page));<br> const { pPageCfg }:any = this.state;<br> pPageCfg.page_number = page;<br> pPageCfg.page_size = page_size;<br> console.log({...pPageCfg},123)<br> axios.get( "http://localhost:8888/pages" , {params:{...pPageCfg}}).then((res) => {<br> console.log(res.data);<br> const list2=res.data.data<br> this.setState({<br> list:list2,<br> setPageCfg: {<br> currentPage: page,<br> totalPage: 24,<br> },<br> });<br> });<br> }<br> lists():any{<br> const {list}:any =this.state<br> return list.map((item:any,index:any)=>{<br> return <li key={index} onClick={()=>{this.xiabiao(item,index)}}><br> <div><br> <img src={item.img} alt= "" /><br> <p>{item.txt}</p><br> </div><br> </li><br> })<br>}<br> componentDidMount(){<br> const { setPageCfg }:any = this.state;<br> this.getPage(setPageCfg.currentPage);<br> }<br> xiabiao(item:any,index:number){<br> console.log(item)<br> this.props.history.push({pathname: `/ case /detail/${index}`, state: {data:item}})<br> }<br> first(){<br> let {setPageCfg}:any =this.state<br> if (setPageCfg.currentPage == 1){<br> return <br> }<br> setPageCfg.currentPage = 1<br> this.setState({<br> setPageCfg<br> })<br> this.getPage(1)<br> }<br> end (){<br> let {setPageCfg}:any =this.state<br> if (setPageCfg.currentPage == 3){<br> return <br> }<br> setPageCfg.currentPage = 3<br> this.setState({<br> setPageCfg<br> })<br> this.getPage(3)<br> }<br> public render() {<br> const {list,setPageCfg}:any=this.state<br> console.log(list)<br> return (<br> <div><br> <Header></Header><br> <ul className= "content" >{list.length>0&&this.lists()}</ul><br> <div className= "fenyeqi" ><br> <p className= "zongshu" >共有3页</p><br> <p onClick={()=>{this.first()}}>首页</p><br> {list.length !== 0 ? (<br> <Pagination <br> className= "fenye" <br> onChange={this.getPage}<br> current={setPageCfg.currentPage}<br> defaultPageSize={8}<br> total={setPageCfg.totalPage}<br> itemRender={this.itemRender}<br> /><br> ) : (<br> "请等待..." <br> )}<br> <p onClick={()=>{this. end ()}}>尾页</p><br> </div><br> <Footer></Footer><br> </div><br> );<br> }<br>}<br>export default Index; |
后台接口
1 | <br>router.get( '/pages' , async (req, res, next) => {<br> let {page_size=8,page_number=1}=req.query<br> let sql = `select * from pages limit ${(page_number-1)*page_size},${page_size}`<br> let result = await mysql(sql)<br> if (result) {<br> res.json( new SuccessModule(result))<br> return <br> }<br> res.json( new ErrorModule( '操作失败' ))<br>}) |
以上就是直播平台搭建源码,react+ts实现分页全部功能, 更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2021-10-25 直播系统代码,输入时实现密码显示与隐藏
2021-10-25 短视频平台源码,Android 左右滑动显示和隐藏
2021-10-25 一对一直播源码,实现Button按下后颜色加深的效果