antd table组件的功能非常强大,可以实现根据column列进行前端和后端排序、筛选等功能,下面潘老师给大家介绍下antd table如何实现前端排序和服务端排序的问题。
一、前端排序
antd table前端排序其实非常简单,我们先看下column列官方API说明:

所以想要实现前端排序,只要在定义column列时,设置sorter属性,再带个回调函数即可,类似如下:
const columns = [
{
title: 'Age',
dataIndex: 'age',
// 默认降序
defaultSortOrder: 'descend',
// 回调函数,返回值boolean类型
sorter: (a, b) => a.age - b.age,
}
]
如此就可以实现如图针对Age列的排序效果:

更具体的可以参考官网示例:
[dm href=’https://ant.design/components/table-cn/#components-table-demo-head’]筛选和排序[/dm]

程序员导航
优网导航旗下整合全网优质开发资源,一站式IT编程学习与工具大全网站
二、后端排序
前端排序往往不能满足我们开发的需求,因为一般我们前端都是分页显示的,前端排序只能针对当前页排序,无法全局排序,因此后端排序时很有必要的,相比前端排序而言,后端排序更复杂些,我们第一张图中也看到,sorter是支持后端排序的,只要设置为true即可,那没了回调函数,该如何告知后端根据哪个列进行何种形式的排序呢?这就要我们看下table的api了:

那怎么用呢?大致的案例代码如下:
// table列
const columns = [
{
title: 'Name',
dataIndex: 'name',
// 核心1:sorter设置为true
sorter: true,
render: name => `${name.first} ${name.last}`,
width: '20%',
}
]
// 模板
render() {
const { data, pagination, loading } = this.state;
return (




