React后台管理系统-用户列表页面
1.页面的结构
//遍历list, 返回数据
let listBody= this.state.list.map((user,index)=> {
return (
<tr key={index}>
<td>{user.id}</td>
<td>{user.username}</td>
<td>{user.email}</td>
<td>{user.phone}</td>
<td>{new Date(user.createTime).toLocaleString()}</td>
</tr>
)
});
//当this.state.list.length<=0,第一次加载的时候firstLoading=true,显示"正在加载数据"
//当this.state.list.length<=0,第一次加载的时候firstLoading=false,显示"正在加载数据"
let listError=(
<tr>
<td colSpan="5" className="text-center">
{this.state.firstLoading ?"正在加载数据....." : "没有找到相应的结果"}
</td>
</tr>
)
let tableBody=this.state.list.length > 0 ? listBody:listError;
return (
<div >
<PageTitle title="用户列表"/>
<div className="row">
<table className="table table-striped table-bordered">
<thead>
<tr>
<th>ID</th>
<th>用户名</th>
<th>邮箱</th>
<th>电话</th>
<th>注册时间</th>
</tr>
</thead>
<tbody>
{
tableBody
}
</tbody>
</table>
</div>
{/* 分页组件 */}
<Pagination current={this.state.pageNum}
total={this.state.total}
onChange={(pageNum) => {this.onPageNumChange(pageNum)}}/>
</div>
);
2.用户列表接口/manage/user/list.do ,请求数据为,pageNum和pageSize, pageSize默认为10,所以只需要传入当前页pageNum就可以了
this.state={
list:[],
pageNum:1,
//判断是不是第一次加载
firstLoading:true
}
请求后台数据
//当页码挂载之后请求数据
componentDidMount(){
this.loadUserList();
}
loadUserList(){
_user.getUserList(this.state.pageNum).then(res => {
//res替换了state
this.setState(res,() => {
//第一次加载的时候把firstLoading设置为false
this.setState({
firstLoading:false
})
});
},errMsg =>{
this.setState({
list : []
});
_mm.errorTips(errMsg);
})
}
3.当页码改变的时候触发onChange事件,调用onPageNumChange函数,传入当前页pageNum,更新state里边的pageNum
//当页数变化的时候改变pageNum
onPageNumChange(pageNum){
//setSate是个异步函数
this.setState({
pageNum : pageNum
},() => {
//当页码更新了重新请求每页的记录,后台返回数据是根据页码返回的
this.loadUserList();
})
}
- 上一篇 »Linux的用户和组群管理
- 下一篇 »Vue+Koa+MongoDB从零打造一个任务管理系统