DevMedia Magazine

React é uma biblioteca, não um framework

Terminal exibindo o comando 'npm create vite@latest meu-projeto -- --template react-ts' com saída de instalação, e à esquerda a estrutura de pastas do projeto gerado no VS Code Explorer, com os arquivos App.tsx, main.tsx, index.html, vite.config.ts, tsconfig.json e package.json
Figura 1. Criando um projeto React com Vite e estrutura de pastas gerada

O React é uma biblioteca de interfaces. Ele sabe renderizar componentes na tela, gerenciar estado e responder a eventos.

O que ele não faz é definir como as rotas funcionam, como os dados são buscados, como as páginas são pré-renderizadas ou como o projeto deve ser estruturado.

Essas decisões ficam a cargo do desenvolvedor. Em projetos pequenos isso não é um problema. Em projetos maiores, a falta de convenções leva a soluções diferentes em cada time, dificultando a manutenção.

O que o Next.js adiciona ao React

O Next.js parte do React e adiciona uma camada de convenções e funcionalidades que a biblioteca não oferece nativamente. Veja a comparação:

Recurso React puro Next.js
Roteamento Necessita de biblioteca externa (React Router) Baseado na estrutura de pastas, sem configuração
Busca de dados useEffect + fetch no cliente async/await direto no componente, no servidor
SEO Página em branco no carregamento inicial HTML pré-renderizado com os dados já presentes
Rotas de API Necessita de servidor Node.js separado Criadas dentro do mesmo projeto, na pasta app/api/
Otimização de imagens Manual Componente <Image> nativo com lazy loading e redimensionamento automático
Tabela 1. Comparação entre React puro e Next.js

O Next.js não substitui o React. Todo o conhecimento de componentes, useState, useEffect e props continua sendo usado da mesma forma. O framework apenas preenche as lacunas que a biblioteca deixa em aberto.

A estrutura de um projeto Next.js

A imagem abaixo mostra a pasta app/ de um projeto Next.js:

Estrutura de pastas de um projeto Next.js
Figura 2. Estrutura de pastas de um projeto Next.js

O roteamento no Next.js é definido pela estrutura de pastas.

Um arquivo page.tsx dentro de app/blog/ cria automaticamente a rota /blog. Uma pasta app/api/newsletter/ com um arquivo route.ts cria o endpoint /api/newsletter. Não há arquivo de configuração de rotas.

Essa convenção reduz o tempo de configuração inicial e torna a estrutura do projeto previsível para qualquer desenvolvedor que já conheça o framework.

Projeto 1: A arquitetura do projeto

Para entender melhor o funcionamento das rotas, vamos construir um exemplo prático que apresenta o roteamento do NextJS.

Porém, antes de colocar a mão no código vamos conhecer a arquitetura desse projeto e quais benefícios o NextJS traz para o desenvolvimento quando comparado ao React.

...
Fim do trecho gratuito • continue abaixo
Conteúdo exclusivo

Desbloqueie toda a DevMedia

  • +2000 artigos e vídeos
  • +40 trilhas sobre Front-end, Back-end, IA e muito mais
  • +5000 exercícios práticos
  • Mentorias ao vivo individuais
Pagamento recorrente
A partir de
R$ 69,90 /mês
Não compromete o limite do seu cartão
Assinar agora