Na 2021 Next.js Conf em 15 de junho, desenvolvedores de todo o mundo se juntou para testemunhar o lançamento de Next.js 11 , o lançamento mais recente da equipe Vercel. As atualizações e novos recursos incluídos no Next.js 11 ofereceram melhorias significativas para uma biblioteca já popular.

Neste artigo, daremos uma olhada em detalhes em algumas dessas atualizações, que impactaram as experiências do usuário e do desenvolvedor. Vamos começar!

Conformidade

Em sua essência, conformidade é um conjunto de princípios ou diretrizes de codificação que tira parte da responsabilidade de tomada de decisão do desenvolvedor. Ao definir padrões e fornecer diretrizes, é mais fácil alcançar o resultado desejado e evitar erros comuns.

De acordo com a equipe Next.js, “conformidade é um sistema que fornece soluções e regras cuidadosamente elaboradas para oferecer suporte ideal carregando e Core Web Vitals ”.

Os novos princípios de conformidade em Next.js 11 podem ser divididos em três áreas:

1. Padrões fortes

A estrutura deve ter certos padrões de design estabelecidos em seu núcleo que tornam difícil para o desenvolvedor fazer as coisas incorretamente.

2. Regras acionáveis ​​

Apesar de ter padrões fortes em vigor, haverá ocasiões em que a responsabilidade recairá sobre o desenvolvedor para selecionar entre dois caminhos potenciais. Um conjunto de regras acionáveis ​​tornará mais fácil para o aplicativo aderir a fortes padrões de desempenho, ao mesmo tempo que permite um nível suficiente de personalização.

3. Tempo de autoria

O tempo de criação dá importância ao desempenho durante o ciclo de desenvolvimento de um recurso, e não após a produção. O desempenho deve ser considerado antes da confirmação do código, em vez de ser tratado como uma métrica baseada em análise após o lançamento do produto.

Uma das maneiras mais fáceis de aplicar o princípio de tempo de criação é por meio de regras de linting. Portanto, Next.js 11 suporta ESLint pronto para uso.

Para obter os benefícios desses recursos, você deve atualizar para a versão mais recente do Next.js executando o seguinte código:

 npm i next @ últimas react @ últimas react-dom @ últimas 

Habilite o linting executando o código abaixo:

 npx próximo lint 

Assim que atualizarmos nossa versão e ativarmos o ESLint, começaremos a receber avisos que nos orientam na direção das melhores práticas do setor, ajudando nossos aplicativos a aderir às diretrizes de conformidade.

Otimização de script

Muitos sites incluem scripts de terceiros para permitir análises e anúncios.

A ordem em que os scripts são carregados tem um grande impacto no desempenho da página, principalmente ao lidar com vários scripts externos em uma página da web. Se não forem gerenciados de maneira adequada, os scripts podem degradar gravemente a experiência do usuário.

Next.js introduziu um Componente de script com uma propriedade de estratégia que lida com muitos desses problemas.

Vamos testar! Uma mudança perceptível é que não precisamos mais envolver a tag de script HTML nativo na tag next/head :

 import Head from'next/head'
function Home () { Retorna ( <>  
 

Atualização rápida melhorada

Com o webpack 5 instalado, o Next.js 11 identifica a atualização rápida como uma tarefa especial e a executa com uma prioridade mais alta, levando a uma atualização mais rápida sempre que qualquer alteração de código é salva.

Cache de ativos de longo prazo

Com o webpack 5 instalado, o processo de construção do comando build é determinístico. Os hash gerados nas compilações subsequentes não mudam se os segmentos de código não foram alterados, o que significa que os arquivos com hash no navegador podem ser reutilizados por um período mais longo.

Tremulação de árvore aprimorada

O Webpack 5 oferece a capacidade de sacudir os módulos commonJS , removendo o código não utilizado do pacote.

Migração do Create React App

Devido a solicitações da comunidade, a equipe Vercel lançou a ferramenta @ next/codemod , que oferece suporte à compatibilidade entre os projetos React e Next.js.

Podemos executar a ferramenta, fornecer um projeto gerado usando o script Create React App e convertê-lo em um projeto Next.js. Vamos experimentar!

Primeiro, crie um aplicativo React usando o comando:

 npx criar-reagir-app cra-demo

Agora que inicializamos um novo projeto React, podemos executar nosso projeto usando o comando:

 npm run start

Você verá a conhecida tela React:

React Loading Screen

Em seguida, execute o script para migrar de Create React App para um projeto Next.js:

 npx @ next/codemod cra-to-next cra-demo

Podemos ver que o script faz várias alterações no repositório para portá-lo para Next.js. Essas mudanças incluem:

  • Mudanças nos scripts em package.json
  • Adição da pasta pages , que é um recurso principal de um repositório Next.js
  • Mudanças em como CSS é importado criando um arquivo _app.js
  • Criação de um arquivo next.config.js e preenchimento dele

Otimização de Babel

Next.js 11 apresenta uma nova implementação do carregador Babel para webpack, que inclui um camada de cache de configuração na memória que reduz ainda mais o tempo de inicialização das melhorias feitas nas versões 10.1 e 10.2.

Next.js ao vivo

A equipe da Vercel usou várias tecnologias de front-end de próxima geração, como serviceWorker, WebAssembly e módulos ES para fornecer um ambiente colaborativo dentro do navegador. Usando o recurso Next.js Live, os desenvolvedores e designers podem colaborar simplesmente compartilhando uma URL. O recurso Live está sendo executado atualmente em acesso antecipado .

Conclusão

É claro que essas atualizações constituem um dos lançamentos Next.js mais proeminentes de todos os tempos!

Existem alterações feitas no núcleo que reduzem os tempos de inicialização, como a otimização do Babel, e sugestões de conformidade que levam o desenvolvedor a uma solução comprovada. Outras melhorias são no carregamento de imagens e scripts, tornando a experiência do usuário perfeita. Além disso, agora temos a capacidade de melhorar a colaboração usando o recurso Live.

Por essas e outras razões, a versão Next.js 11 parece promissora e digna de uma atualização. Experimente e diga-nos o que pensa nos comentários!

A postagem Novos recursos em Next.js 11 apareceu primeiro no LogRocket Blog .