Skip to content

Commit bb70ef3

Browse files
introducao next v16
1 parent d5948f6 commit bb70ef3

9 files changed

Lines changed: 243 additions & 59 deletions

File tree

apps/next-v16-fumadocs/content/docs/introducao/00-inicio.mdx

Lines changed: 0 additions & 57 deletions
This file was deleted.
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
---
2+
title: Quem sou eu
3+
---
4+
5+
Fui Tech Lead de Front-end e responsável pelo currículo de Front-end, bem como pela liderança técnica de um time de mais de 20 pessoas em uma das maiores empresas de educação do país.
6+
7+
Fui professor de Front-End para mais de 400 alunos em turmas formadas em uma grande escola de programação.
8+
9+
Fundador e Professor do Codante
10+
11+
Fundador e CTO do Trilhante, uma das maiores plataformas de ensino de direito do Brasil.
12+
13+
Já tive experiência como fundador de outras startups. Sou graduado em Administração de Empresas pela EAESP-FGV, e graduado e mestre em Direito pela USP.
14+
15+
Criador de scripts nas horas vagas.
16+
17+
## Minha Stack
18+
19+
- PHP e Laravel
20+
- Javascript - React
21+
- Webdesign - Figma
22+
- Apaixonado por Frontend, design e animação
23+
24+
## Uses
25+
26+
- **Editor** - VSCode com tema One Dark Pro Darker
27+
- **Terminal** - iTerm2
28+
- **Fonte** - Fira Code
29+
- **Browser** - Arc
30+
- **VSCode File Icons**
31+
- **Macbook Pro M4 Pro** - 48GB Ram + 512GB SSD
32+
- **Monitores** - Samsung 28" 4k e LG 34" 4k
33+
- **Teclado** - MX Keys Mechanical
34+
- **Mouse** - MX Master 3s
35+
- **Fone** - JBL 720BT
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
---
2+
title: O que vamos aprender hoje
3+
---
4+
5+
Na versão 16, o Next melhorou muito sua _developer experience_. Está muito mais fácil criar uma aplicação Next. Isso porque foi lançado um dos melhores recursos do Next, até hoje chamado de `Cache Components`.
6+
7+
Você verá neste workshop que os componentes de cache - `cache components` - eram o que faltava para que a nova forma de fazer aplicações React (esse movimento começou com os RSCs) fizesse sentido.
8+
9+
## 1. Cache Components
10+
11+
Em primeiro lugar, o mais importante: Cache Components.
12+
13+
Vamos criar uma aplicação simples usando esse recurso. Nessa parte finalmente vamos entender (à fundo) duas coisas fundamentais no Next.js:
14+
15+
1. A diretiva `use cache`
16+
2. O que é PPR (Partial Pre Rendering) e como essa nova forma de renderizar faz sentido dentre todas as formas possíveis do Next.js.
17+
18+
A API da implementação do novo cache no Next.js mudou bastante desde a concepção do `use cache`. Mas agora ela é estável e não muda mais 🎉.
19+
20+
## 2. DevTools and MCP
21+
22+
Se você está usando agentes de código, já deve ter percebido que muitos agentes e modelos não conseguem acompanhar a velocidade com que as novas atualizações do framework acontecem. Os modelos, além de terem um _cutoff_ no passado, não são eficientes para buscar informações sobre o framework.
23+
24+
Por essa razão, o Next acabou de lançar um MCP. Além de trazer informações sobre como migrar uma aplicação Next para a última versão, a ferramenta também integra com o _dev server_ para fornecer aos modelos de IA os erros que estão ocorrendo em tempo real.
25+
26+
## 3. Next Evals
27+
28+
E falando de IA, a Vercel lançou uma página dedicada a avaliar os melhores modelos para se usar ao construir uma aplicação Next.js. É muito interessante 🧠
29+
30+
## 4. Outros Updates
31+
32+
- Build Adapters
33+
- File System CAching
34+
- Turbopack
35+
- Proxy.ts
36+
- Enhanced Routing
37+
- React Compiler Support
38+
39+
## 5. Migrando para V16
40+
41+
Vamos passar rapidamente pela documentação de upgrade do Next.js - isso vai trazer um overview das principais mudanças dessa versão.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
22
"title": "Introdução",
3-
"pages": ["00-inicio", "01-introducao"]
3+
"pages": ["01-introducao", "02-quem-sou-eu", "03-o-que-vamos-aprender-hoje"]
44
}
89.6 KB
Loading
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
---
2+
title: Enhanced Routing
3+
---
4+
5+
O Next.js 16 introduz melhorias significativas no sistema de roteamento, tornando a navegação mais previsível, performática e com melhor suporte a casos complexos.
6+
7+
## Principais Melhorias
8+
9+
### Dynamic Routes Mais Robustos
10+
11+
- Melhor tratamento de parâmetros dinâmicos em rotas nested
12+
- Suporte aprimorado para catch-all segments (`[...slug]`)
13+
- Validação automática de tipos com `generateStaticParams`
14+
15+
### Route Groups com Contexto Compartilhado
16+
17+
- Layouts aplicados apenas a grupos específicos de rotas
18+
- Melhor isolamento de contextos entre grupos
19+
- Suporte a múltiplos layouts em paralelo
20+
21+
### Middleware Mais Poderoso
22+
23+
- Detecção automática de tipos em `NextRequest` e `NextResponse`
24+
- Melhor suporte a reescrita de URLs com preservação de query strings
25+
- Logging integrado para debugging de rotas
26+
27+
## Padrões Recomendados
28+
29+
### Organização com Route Groups
30+
31+
```
32+
app/
33+
├── (auth)/
34+
│ ├── login/
35+
│ ├── register/
36+
│ └── layout.tsx
37+
├── (dashboard)/
38+
│ ├── overview/
39+
│ ├── analytics/
40+
│ └── layout.tsx
41+
└── api/
42+
```
43+
44+
### Validação de Parâmetros
45+
46+
Use `generateStaticParams` com tipagem forte para evitar rotas inválidas em build time:
47+
48+
```typescript
49+
export async function generateStaticParams() {
50+
const posts = await getPosts()
51+
52+
return posts.map((post) => ({
53+
slug: post.slug,
54+
}))
55+
}
56+
```
57+
58+
## Migração Suave
59+
60+
- Rotas antigas continuam funcionando normalmente
61+
- Combine padrões antigos e novos no mesmo projeto
62+
- Prefira novo padrão em novos recursos
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
---
2+
title: React Compiler Support
3+
---
4+
5+
O Next.js 16 traz suporte estável para o React Compiler, uma ferramenta experimental do React que otimiza automaticamente componentes, reduzindo a necessidade de `useMemo` e `useCallback`.
6+
7+
## O que é o React Compiler
8+
9+
O React Compiler analisa seu código e:
10+
11+
- Identifica automaticamente dependências de efeitos
12+
- Otimiza re-renders desnecessários
13+
- Memoiza valores sem necessidade de `useMemo`
14+
- Memoiza callbacks sem necessidade de `useCallback`
15+
16+
## Como Ativar
17+
18+
### Via next.config.js
19+
20+
```javascript
21+
/** @type {import('next').NextConfig} */
22+
const nextConfig = {
23+
experimental: {
24+
reactCompiler: true,
25+
},
26+
}
27+
28+
module.exports = nextConfig
29+
```
30+
31+
### Ativação Parcial (por arquivo)
32+
33+
```javascript
34+
// next.config.js
35+
experimental: {
36+
reactCompiler: {
37+
compilationMode: 'annotation', // Requer "use memo" explícito
38+
},
39+
}
40+
```
41+
42+
Ou adicione `"use memo"` no início de arquivos específicos:
43+
44+
```typescript
45+
'use memo'
46+
47+
export default function Component() {
48+
// Este componente será compilado
49+
}
50+
```
51+
52+
## Comportamento Automático
53+
54+
Com o compilador ativo, você pode simplificar código:
55+
56+
### Antes
57+
58+
```typescript
59+
export default function List({ items }) {
60+
const sorted = useMemo(() => items.sort(), [items])
61+
62+
const handleClick = useCallback((id) => {
63+
console.log(id)
64+
}, [])
65+
66+
return <div>{sorted.map(item => ...)}</div>
67+
}
68+
```
69+
70+
### Depois
71+
72+
```typescript
73+
export default function List({ items }) {
74+
const sorted = items.sort() // Compiler otimiza automaticamente
75+
76+
const handleClick = (id) => { // Compiler memoiza automaticamente
77+
console.log(id)
78+
}
79+
80+
return <div>{sorted.map(item => ...)}</div>
81+
}
82+
```
83+
84+
## Considerações
85+
86+
- Compilador é automático, não há mudanças necessárias no código existente
87+
- Compatível com código que já usa `useMemo` e `useCallback`
88+
- Pode resultar em builds ligeiramente mais lentos (compensado pela performance em runtime)
89+
- Ideal para aplicações com muitos componentes reativos
90+
91+
## Limitações Conhecidas
92+
93+
- Alguns padrões complexos podem não ser otimizados
94+
- Context API com valores mutáveis pode impactar eficácia
95+
- Ainda em evolução; novos padrões são suportados frequentemente
96+
97+
## Próximos Passos
98+
99+
- Monitore logs de compilação para ver otimizações aplicadas
100+
- Teste performance com DevTools do React
101+
- Reporte padrões não otimizados para a equipe do React

apps/next-v16-fumadocs/content/docs/outros-updates/meta.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
"02-build-adapters",
66
"03-file-system-caching",
77
"04-turbopack",
8-
"05-proxy-routes"
8+
"05-proxy-routes",
9+
"06-enhanced-routing",
10+
"07-react-compiler-support"
911
]
1012
}
89.6 KB
Loading

0 commit comments

Comments
 (0)