Vercel divulga primeiro RFC para feature oficial de Layout no Next.js
Vercel publica RFC1 sobre feature de Layout no Next.js. Esta é a primeira vez que um recurso nativo de Layout é introduzido no framework e segundo os mantenedores, essa é a maior mudança no projeto desde o seu lançamento em 2016.
Como o TabNews é construido 100% em cima do Next.js, sugiro estudarmos com calma e entender como progressivamente adaptar nossas páginas para essa nova abordagem.
Então as principais features são (segundo o que foi postado no blog):
- Nested Layouts: você poderá construir aplicações mais complexas e com "sub-rotas" dentro de uma mesma interface (nested routes).
- Server Components: aparentemente, agora por padrão será utilizado Server Components do React.
- Melhorias em Data Fetching: antes você só conseguia fazer o fetch dos dados dentro das páginas, mas agora você pode fazer dentro dos layouts, evitar "waterfall", e paralelizar tudo ao mesmo tempo.
- Features do React 18: suporte a Streaming, Transitions e Suspense.
- Roteamento entre Client e Server: não entendi muito bem esse item, mas o roteamento vai ser centralizado no servidor, mas com comportamento semelhante a uma SPA.
- Adoção 100% incremental: não haverá nenhuma breaking change e será possível adotar essa feature gradativamente.
- Convenções de Routing Avançados: pelo que eu entendi, com isso vai ser possível pré-renderizar rotas seguintes (antes mesmo de acessá-las) e já guardar isso "cozinhado" no client, e também navegar pela árvore de rotas instantaneamente, muito parecido com o comportamento de um App Nativo.
O Post no Blog deles é bem grande e detalhado, e como quero ajudar a finalizar a feature de Resetar a Senha aqui do TabNews o mais rápido possível, vou deixar para ler depois.
Em paralelo na comunidade isso gerou um atrito, pois Ryan Florence, que é o criador do Remix (outro framework para desenvolvimento web) publicou um Tweet falando que a Vercel roubou todas essas idéias de routing do Remix. O Tweet foi apagado e o Diretor de Relacionamento com Desenvolvedores atualizou a RFC destacando as inspirações desta feature:
https://twitter.com/leeerob/status/1528887380681588736/photo/1
Footnotes
-
RFC
significaRequest For Comments
e é um estágio de uma feature onde os mantenedores do projeto fazem uma proposta de como essa tal feature deveria ser implementada e usada, e em seguida aguarda a avaliação da comunidade. ↩