Frontends com Vibecoding · Capítulo 16 de 30 · 9 min
Dimensionar tabelas e organizar o cálculo das métricas
Você sai com uma entrega que integra volume, paginação, virtualização e definição da métrica.
Este capítulo faz parte do curso gratuito Frontends com Vibecoding. Para marcar como concluído e salvar o progresso, abra este capítulo na página do curso.
A tabela que roda bem com 30 linhas de teste engasga quando um cliente abre a mesma tela com 30 mil. O degrau certo se escolhe medindo o volume real no computador mais fraco disponível. Quem decide a tela de dados da própria empresa fica com cinco degraus, o momento de calcular cada número e o relatório offline.
O primeiro degrau é a tabela nativa do navegador, o <table> de sempre. Custa quase nada, nasce acessível e aguenta poucos milhares de linhas com algarismos tabulares (dígitos de largura igual, que alinham em coluna) e folha de impressão.
O segundo desenha só as linhas visíveis, técnica chamada virtualização, como a vitrine que troca o produto conforme você anda. O TanStack Virtual entra a partir de algumas centenas de itens e vai confortável até perto de 100 mil linhas. O preço: a busca do navegador só acha o que está desenhado.
Em React, a base do segundo degrau é a TanStack Table v9, estável desde 4 de agosto de 2026. Ela é headless (calcula ordenação, filtro e paginação e deixa o desenho com você, como um motor sem carroceria). As extensões só entram no pacote quando usadas, e o estado fica no TanStack Store. Escolha quando o peso do pacote importa.
O terceiro degrau é a grade que calcula. O AG Grid 35 e 36 trouxe fórmulas nativas e agregação customizada: a grade vira mini-planilha sem exportar para o Excel. MUI X Data Grid e Mantine DataTable fazem o mesmo trabalho quando o design system (a caixa de peças padronizadas da marca) do projeto já é esse.
Milhões de células pedem canvas. O Glide Data Grid desenha em pixels e exige uma camada ARIA paralela (as etiquetas que descrevem cada célula ao leitor de tela). O desenho em si devolve nada a quem não enxerga.
O AntV S2 faz pivô com milhões de células em menos de quatro segundos e foi proposto como plugin nativo do Apache Superset. O VTable, do mesmo ecossistema do VChart, traz drill-down.
Planilha de verdade, com fórmula, tabela dinâmica e edição a várias mãos, é outro produto. O Univer é o sucessor oficial do Luckysheet, declarado sem manutenção, com pivôs, colaboração, importação e exportação. O Fortune-sheet é o fork em TypeScript para migrar com menos atrito.
O degrau da tabela pelo volume e pela função
| Degrau | Volume e função | Ferramenta | Preço a pagar |
|---|---|---|---|
| Tabela HTML | Até poucos milhares de linhas, leitura e ordenação simples | <table> nativo, algarismos tabulares e folha de impressão | Quase nenhum; nasce acessível |
| Só o visível na tela | De algumas centenas a cerca de 100 mil linhas | TanStack Table v9 com TanStack Virtual | A busca do navegador só acha o que está desenhado |
| Grade que calcula | Fórmula, agregação e edição na própria célula | AG Grid 35 e 36; MUI X Data Grid ou Mantine DataTable no design system da casa | Licença e peso de pacote |
| Milhões de células | Pivô e rolagem em massa | Glide Data Grid em canvas; AntV S2 (pivô em menos de 4 s); VTable | Camada ARIA paralela obrigatória |
| Planilha embutida | Fórmula, tabela dinâmica e edição a várias mãos | Univer; Fortune-sheet na migração do Luckysheet | Um produto inteiro para manter |
Suba de degrau só depois de medir com o volume real, no computador mais fraco disponível.
A frequência com que o número muda decide quando ele é calculado. Se muda uma vez por dia, calcule antes de publicar e sirva um retrato pronto, leve e imprimível. Se muda com o filtro de quem lê, consulte a fonte a cada visita e aceite que a infraestrutura cresce com a audiência.
Se muda várias vezes por segundo, como cotação ou telemetria, um motor dentro do navegador absorve o fluxo sem redesenhar a tela inteira. Escreva a fórmula de cada indicador uma vez só, no arquivo que todas as telas leem, como a aula do board mostra. Todo número responde em dois cliques de onde veio: origem, data, responsável e definição.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
O relatório offline seguro é um HTML único com o banco dentro do navegador e os dados locais. Wasm é código compilado que roda no navegador quase na velocidade nativa, como um motor de aplicativo dentro da página. O SQLite Wasm 3.53 pesa cerca de 400 KB comprimidos, com o sistema de arquivos opfs-wl, para armazenamento estruturado leve.
O PGlite 0.5.8 é um Postgres 16 real em Wasm, com cerca de 3,3 MB; escolha quando extensões e tipos do Postgres justificam o peso. O DuckDB-Wasm segue defasado do núcleo nativo, na base 1.5.4 com Arrow 17, e não conte com paridade de versão.
O DuckDB 2.0, com leitura e escrita assíncronas, está previsto para o fim de 2026 sem confirmação de chegada ao Wasm.
Numa distribuidora, a lista de pedidos do mês roda na tabela nativa, e o histórico de anos pede o TanStack Virtual. A tabela de preço com margem por cliente pede a fórmula do AG Grid. O representante que visita cliente sem sinal leva o relatório de estoque num HTML único com SQLite Wasm, e fecha o pedido na hora.
Antes de aprovar a próxima tela pesada, gere um arquivo de teste com o volume real esperado. Abra a tela no computador mais fraco disponível, com a limitação de processador ligada. Escolha o degrau pela tabela desta aula, nunca pelo nome da biblioteca, e exija que cada número mostre origem, data e responsável em dois cliques.
Laboratório visual: dimensionar tabelas e organizar o cálculo das métricas
Volume, paginação, virtualização e definição da métrica
Com a base em zero, o comprimento das barras é proporcional aos valores. Dados fictícios para estudar escala; não representam desempenho de modelos ou resultados de empresas.
Consultar os dados e o método
| Versão | Unidades |
|---|---|
| A | 80 |
| B | 90 |
| C | 100 |
Altura = (valor − início do eixo) ÷ (100 − início do eixo). A troca muda a escala, preservando os dados.
Todos os capítulos de Frontends com Vibecoding
- 01Projetar o briefing, o repertório da marca e o custo de manter
- 02Dirigir o prompt e avaliar a entrega do agente
- 03Escolher a stack e projetar suas dependências
- 04Investigar uma stack e priorizar atualizações
- 05Construir a identidade com tokens, CSS moderno e DESIGN.md
- 06Construir componentes, usar o registro e publicar o catálogo
- 07Projetar uma linguagem de ícones e ilustração
- 08Projetar menus, popovers e modais acessíveis
- 09Adaptar o layout ao celular e ao contêiner
- 10Projetar movimento, assinatura e narrativas por rolagem
- 11Preparar imagens, ícones e vídeo para a web
- 12Construir profundidade e dirigir a montagem de vídeo
- 13Construir formulários e estados de interação
- 14Publicar conteúdo encontrável em vários idiomas
- 15Projetar gráficos e painéis pela decisão
- 16Dimensionar tabelas e organizar o cálculo das métricas
- 17Escolher mapas, diagramas e cenas espaciais
- 18Comparar direção visual em Stripe e Apple
- 19Avaliar busca, conversão e padrões de comércio
- 20Auditar acessibilidade e contraste nos dois temas
- 21Validar desempenho, autenticação e segurança
- 22Planejar a modernização e publicar com reversão
- 23Construir o projeto final, medir a cara de IA e revisar
- 24Comparar modelos e interpretar benchmarks
- 25Calcular custo por tarefa e definir governança
- 26Supervisionar o modelo que opera o computador
- 27Configurar ambiente, skills e o contêiner de contexto
- 28Aplicar direção de arte, UX writing e padrões de código
- 29Construir um aplicativo instalável e resiliente
- 30Produzir apresentações e PDF com critérios de entrega