React vs Vue vs Svelte vs Astro vs Next.js, com o mesmo app

Comparação de frameworks frontend

React vs Vue vs Svelte vs Astro vs Next.js: mesmo app, medido | We.Inc

React, Vue, Svelte, Astro e Next.js comparados com o mesmo app de tarefas em cada um, tamanhos de JavaScript medidos, uma tabela de decisão por tipo de projeto, notas sobre a curva de aprendizado e um quadro sobre Vite vs webpack.

Escolha pelo projeto, não pela popularidade. O Astro combina com sites de conteúdo porque as páginas saem como HTML com pouco ou nenhum JavaScript. O Next.js, construído sobre o React, combina com web apps completos. O Vue é o mais fácil de aprender e o Svelte envia menos código. Fizemos um app de tarefas em cada um: o Svelte enviou 13.8 KB com gzip, o Vue 25.8 KB e o React 68 KB.

Em uma linha cada

Opiniões são fáceis de achar; medições do mesmo app, não. Escrevemos um pequeno app de tarefas em React, Vue, Svelte e JavaScript puro, fizemos o build de cada um com Vite, testamos clicando no navegador e medimos o que cada um envia. Astro e Next.js aparecem com o mesmo componente no lugar.

Perguntas frequentes

Next.js é a mesma coisa que React?

Não. O React é a biblioteca de interface; o Next.js é um framework construído sobre o React que adiciona roteamento, renderização no servidor, Server Components, carregamento de dados e uma configuração de build. Você escreve componentes React dentro do Next.js.

Astro ou Next.js para um site?

Para sites focados em conteúdo, como páginas de marketing, blogs e documentação, o Astro normalmente envia menos JavaScript e é mais simples. Para sites com cara de app, com login, dashboards e muita interação, o Next.js se encaixa melhor.

Vue é mais fácil que React?

Muita gente acha mais fácil para começar, porque os templates parecem HTML e a reatividade não exige atualizações imutáveis. O React pede que você aprenda JSX e as regras dos hooks primeiro, mas tem mais bibliotecas e vagas.

Por que o bundle do Svelte é tão pequeno?

O Svelte compila os componentes em código simples de atualização do DOM no momento do build, então envia um runtime pequeno em vez de um motor de renderização genérico.

Devo usar Vite ou webpack?

Para um projeto novo, Vite: ele inicia rápido e precisa de pouca configuração. O webpack ainda faz sentido em projetos existentes que dependem dos plugins dele.

Curva de aprendizado, com sinceridade

Hospedagem

O que cada um envia

Build feito com Vite em modo de produção; cada build foi testado em um navegador. Astro e Next.js não fizeram parte desta medição.

Medido: o mesmo app de tarefas, total de JavaScript enviado

Qual escolher

Tabela de decisão por tipo de projeto

Como eles se comparam

Em um relance

O mesmo app, de cinco jeitos

React

O estado fica nos hooks; cada mudança roda o componente de novo e o React atualiza as diferenças no DOM. As atualizações precisam criar novos arrays e objetos.

Vue

Script, template e (opcionalmente) estilos em um só arquivo. v-model liga os inputs nos dois sentidos e as refs são reativas, então dar push no array basta.

Svelte 5

Runes ($state, $derived) marcam valores reativos, e o compilador transforma o componente em atualizações diretas do DOM, e é por isso que o runtime dele é pequeno.

JavaScript puro

A referência. Serve para um widget pequeno, mas você escreve as atualizações do DOM e as mantém em sincronia com os dados na mão.

Astro: o mesmo app como uma ilha

O Astro renderiza a página em HTML e só faz hydration dos componentes que recebem uma diretiva client. Aqui o app de tarefas em Svelte carrega o JavaScript quando entra na tela ao rolar; o resto da página não envia nada.

Next.js: onde o mesmo componente entra

No App Router a página é um Server Component, então a lista de tarefas interativa vai em um arquivo próprio marcado com "use client". A página ao redor não envia JavaScript de componente próprio.

Quadro: Vite vs webpack

Vite vs webpack

Vai construir um site de conteúdo? Veja também

geradores de sites estáticos

Comece grátis · Sem cartão de crédito

Relacionados: Guias

Produto

Para quem é

Recursos

Recursos

Empresa

Mapa do site