📅  最后修改于: 2023-12-03 15:28:10.247000             🧑  作者: Mango
语义 UI 表是一种将数据呈现为表格的 UI 控件,其重点在于可读性和易用性。可排序变体则是能够根据表头的点击动作来对表格数据进行排序的变体。
使用语义 UI 表可排序变体具有以下优点:
可以使用语义 UI 框架中提供的组件来实现语义 UI 表可排序变体。以下是以 React 框架为例的代码示例:
import React, { useState } from 'react';
import { Table } from 'semantic-ui-react';
const data = [
{ name: 'Alice', age: 24, gender: 'F' },
{ name: 'Bob', age: 32, gender: 'M' },
{ name: 'Charlie', age: 28, gender: 'M' },
{ name: 'David', age: 47, gender: 'M' },
];
const DataTable = () => {
const [sortHeader, setSortHeader] = useState('');
const [sortDirection, setSortDirection] = useState('ascending');
const handleHeaderClick = (header) => {
if (sortHeader === header) {
setSortDirection(sortDirection === 'ascending' ? 'descending' : 'ascending');
} else {
setSortHeader(header);
setSortDirection('ascending');
}
};
const sortedData = data.sort((a, b) => {
if (sortHeader === 'name') {
return sortDirection === 'ascending' ? a.name.localeCompare(b.name) : b.name.localeCompare(a.name);
} else if (sortHeader === 'age') {
return sortDirection === 'ascending' ? a.age - b.age : b.age - a.age;
} else if (sortHeader === 'gender') {
return sortDirection === 'ascending' ? a.gender.localeCompare(b.gender) : b.gender.localeCompare(a.gender);
} else {
return 0;
}
});
return (
<Table sortable celled>
<Table.Header>
<Table.Row>
<Table.HeaderCell sorted={sortHeader === 'name' ? sortDirection : null} onClick={() => handleHeaderClick('name')}>Name</Table.HeaderCell>
<Table.HeaderCell sorted={sortHeader === 'age' ? sortDirection : null} onClick={() => handleHeaderClick('age')}>Age</Table.HeaderCell>
<Table.HeaderCell sorted={sortHeader === 'gender' ? sortDirection : null} onClick={() => handleHeaderClick('gender')}>Gender</Table.HeaderCell>
</Table.Row>
</Table.Header>
<Table.Body>
{sortedData.map((item) => (
<Table.Row key={item.name}>
<Table.Cell>{item.name}</Table.Cell>
<Table.Cell>{item.age}</Table.Cell>
<Table.Cell>{item.gender}</Table.Cell>
</Table.Row>
))}
</Table.Body>
</Table>
);
};
export default DataTable;
通过使用语义 UI 表可排序变体,我们可以方便地提升数据呈现的易用性、页面的可读性和用户对数据的理解能力。在实现时,我们可以使用语义 UI 框架中提供的组件,并根据表头的点击动作来动态地对数据进行排序。