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 id="page-wrapper">
-
<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();
-
})
-
}
前端常用动画库
JavaScript七宗罪和一些槽点
prototype与 _proto__的关系
Javascript之傻傻理不清的原型链、prototype、__proto__
C#开发微信门户及应用(26)-公众号微信素材管理
C#开发微信门户及应用(25)-微信企业号的客户端管理功能
基于InstallShield2013LimitedEdition的安装包制作
Entity Framework 实体框架的形成之旅--Code First模式中使用 Fluent API 配置(6)
Entity Framework 实体框架的形成之旅--Code First的框架设计(5)