Pular para o conteúdo

Table (tabela)

Tables display sets of data. Eles podem ser totalmente customizadas.

Tables display information in a way that’s easy to scan, so that users can look for patterns and insights. Elas podem ser incorporadas no conteúdo principal, assim como Cartões.

Tables can include:

  • Uma visualização correspondente
  • Navegação
  • Ferramentas para consultar e manipular dados

Ao incluir ferramentas, elas devem ser colocadas diretamente acima ou abaixo da tabela.

Estrutura

Uma tabela de dados contém uma linha de cabeçalho no topo que lista os nomes das colunas, seguidas pelas linhas dos dados.

Caixas de seleção devem acompanhar cada linha se o usuário precisar selecionar ou manipular dados.

Para acessibilidade, a primeira coluna é ajustada para ser um elemento <th>, com um escopo de "linha". Isso permite que os leitores de tela identifiquem o valor de uma célula por seu nome de linha e coluna.

Tabela Simples

Um exemplo simples sem frescuras.

Dessert (100g serving)CaloriesFat (g)Carbs (g)Protein (g)
Frozen yoghurt1596244
Ice cream sandwich2379374.3
Eclair26216246
Cupcake3053.7674.3
Gingerbread35616493.9

Tabela Densa

Um exemplo simples de uma tabela densa sem frescuras.

Dessert (100g serving)CaloriesFat (g)Carbs (g)Protein (g)
Frozen yoghurt1596244
Ice cream sandwich2379374.3
Eclair26216246
Cupcake3053.7674.3
Gingerbread35616493.9

Classificando & Selecionando

Este exemplo demonstra o uso de linhas clicáveis e Checkbox para a seleção, com uma barra de ferramentas personalizada Toolbar. Ele usa o componente TableSortLabel para ajudar no estilo dos cabeçalhos das colunas.

A tabela recebeu uma largura fixa para demonstrar a rolagem horizontal. Para impedir que os controles de paginação rolem, o componente TablePagination é usado fora da tabela. (O Exemplo 'da ação de paginação personalizada' abaixo mostra a paginação dentro de TableFooter.)

Nutrition
Dessert (100g serving)Caloriessorted ascendingFat (g)Carbs (g)Protein (g)

Linhas por página:

5

1-5 de 13

Tabelas Customizadas

Aqui está um exemplo de customização do componente. Você pode aprender mais sobre isso na página de documentação de sobrescritas.

Dessert (100g serving)CaloriesFat (g)Carbs (g)Protein (g)
Frozen yoghurt1596244
Ice cream sandwich2379374.3
Eclair26216246
Cupcake3053.7674.3
Gingerbread35616493.9

Custom pagination options

It's possible to customise the options shown in the "Rows per page" select using the rowsPerPageOptions prop. You should either provide an array of:

  • numbers, each number will be used for the option's label and value.

      <TablePagination rowsPerPageOptions={[10, 50]} />
  • objects, the value and label keys will be used respectively for the value and label of the option (useful for language strings such as 'All').

      <TablePagination rowsPerPageOptions={[10, 50, { value: -1, label: 'All' }]} />

Custom pagination actions

A propriedade Action do componente TablePagination permite a implementação de ações customizadas.

Frozen yoghurt1596
Ice cream sandwich2379
Eclair26216
Cupcake3053.7
Marshmallow3180

Cabeçalho fixo

Um exemplo de uma tabela com linhas roláveis e cabeçalhos de coluna fixos. Ele aproveita do suporte de stickyHeader (⚠️ sem suporte ao IE 11).

NameISO CodePopulationSize (km²)Density

Linhas por página:

10

1-10 de 15

Tabela de abrangência

Um exemplo simples com abrangência de linhas & colunas.

DetailsPrice
DescQty.UnitSum
Paperclips (Box)1001.15115.00
Paper (Case)1045.99459.90
Waste Basket217.9935.98
Subtotal610.88
Tax7 %42.76
Total653.64

Tabela Virtualizada

No exemplo a seguir, nós demonstramos como usar react-virtualized com o componente Table. Ela renderiza 200 linhas e pode facilmente lidar com mais. A virtualização ajuda a lidar com problemas de desempenho.

Dessert
Calories (g)
Fat (g)
Carbs (g)
Protein (g)

Projetos Complementares

Para usos mais avançados, você pode tirar vantagem com:

material-table

estrelas npm downloads

material-table é uma tabela de dados simples e poderosa para React baseado na tabela do Material-UI com alguns recursos adicionais. Eles suportam muitos formas de utilização (edição, filtragem, agrupamento, ordenação, seleção, i18n, árvore de dados e muito mais). Você deveria dar uma olhada.

Editable Example
Actions
Name
Surname
Birth Year
Birth Place
MehmetBaran1987Şanlıurfa
Zerya BetülBaran2017İstanbul

Outros

  • dx-react-grid-material-ui Uma grade de dados para Material-UI com paginação, ordenação, filtragem, agrupamento e funções de edição.(Com licenciamento de uso pago).
  • mui-datatables: Tabelas de dados responsivas para Material-UI com filtro, ordenação, pesquisa e muito mais.
  • tubular-react: Uma tabela de Material-UI com fonte de dados local ou remota. Com filtragem, classificação, pesquisa de texto livre, exportação para CSV localmente e agregações.

Acessibilidade

(WAI tutorial: https://www.w3.org/WAI/tutorials/tables/)

Caption

A caption functions like a heading for a table. Most screen readers announce the content of captions. Captions help users to find a table and understand what it’s about and decide if they want to read it.

A basic table example with a caption
Dessert (100g serving)CaloriesFat (g)Carbs (g)Protein (g)
Frozen yoghurt1596244
Ice cream sandwich2379374.3
Eclair26216246