Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

Porque é que o React passou a recomendar o uso do NextJs para a criação de novos projectos?

Posted on Oct 2 Já se sabe que a documentação da última versão do React recomenda o uso de frameworks ( Nextjs, Remix, Gatsby e Expo para mobile ) desde o principio para a criação de novos projectos, no entanto, no seio da comunidade é normal que surjam questões sobre o que realmente esses frameworks vêm resolver e o porquê das mesmas terem passado de opcionais como anteriormente se apresentavam, à recomendadas, e a resposta para esse fenomeno é a seguinte:Esses frameworks transformaram-se de simples ferramentas de resolução de problemas especificos para plataformas indispensaveis, através de suas metodologias opinadas em relação a aspectos de como uma aplicação deve estar estruturada, bem como algumas funcionalidades avançadas e recomendadas, garantindo assim qualidade, flexibilidade, produtividade e desempenho dos projectos desenvolvidos.Para o caso do NextJS concretamente, que teria surgido inicialmente como solução para resolver problemas como renderização do lado do servidor, temos hoje um NextJS resolvendo praticamente um leque de questões-chave, relevantes quando se trata de desenvolvimento Frontend, vamos ver alguns deles a fundo:O Next.js suporta tanto a renderização da interface no servidor quanto a renderização no cliente (SSR e CSR), permitindo uma experiência de usuário rápida e otimizada para mecanismos de busca, mas como isso funciona detalhadamente:Num exemplo básico e simplificado para abrir a mente, imagine um cenário para a renderização no servidor (SSR) como se alguém montasse o quebra-cabeça de uma paisagem para você antes de o entregar. Ou seja, antes de mostrar a imagem bonita da paisagem na sua frente, alguém já encaixou todas as peças e montou o quebra-cabeça por você.Na prática, quando você acessa uma página da web que usa SSR, o servidor já montou a página inteira antes de mostrar para você. Ele pega todas as partes da página, coloca tudo junto e entrega a página pronta e bonita para o seu navegador.Agora, vamos imaginar que você mesmo está montando o quebra-cabeça da paisagem. Você tem todas as peças e vai colocando uma por uma no lugar certo até a imagem final aparecer.Com a renderização no cliente (CSR), o servidor só entrega para o seu navegador as peças separadas do quebra-cabeça. Então, é o seu navegador que precisa montar tudo e mostrar a página completa. Ele pega as peças (ou seja, os pedaços de código) e as encaixa juntas para você ver a página bonita.a) Basicamente, o fluxo do Server-Side Rendering (SSR) no Next.js funciona assim:Quando um usuário solicita uma página da web, o servidor Next.js recebe a solicitação.O servidor processa a solicitação e gera o HTML completo da página no momento em que a solicitação é feita. Isso pode envolver buscar dados do banco de dados ou de APIs externas.Após gerar o HTML, o servidor envia a página HTML completa para o navegador do usuário.O navegador recebe o HTML e o exibe imediatamente, permitindo que o usuário veja o conteúdo enquanto os scripts JavaScript e estilos são carregados.Uma vez que o JavaScript e os estilos são carregados, o Next.js converte a página em um aplicativo React totalmente funcional, permitindo a interação do usuário com a página sem recarregar completamente a página.Image from Krusche CompanyO SSR é ótimo para SEO (otimização de mecanismos de busca) porque os mecanismos de busca podem ver o conteúdo da página diretamente no HTML. Também é útil para melhorar o desempenho percebido pelo usuário, já que o conteúdo é exibido rapidamente evitando aquela sensação de construção, tal como acontece em ambientes com por exemplo condições de rede fracas.b) De igual forma, o fluxo do Client-Side Rendering (CSR) no Next.js funciona assim:Quando o usuário solicita uma página, o servidor Next.js envia um HTML básico para o navegador, juntamente com os scripts JavaScript necessários.O navegador recebe o HTML e começa a renderização, mas a maior parte do conteúdo é gerada pelo JavaScript no lado do cliente.O JavaScript faz solicitações de dados adicionais (por exemplo, para APIs) e, após receber os dados, ele atualiza a página no navegador com o conteúdo real.A partir desse ponto, a interação do usuário é tratada principalmente pelo JavaScript no navegador, sem recarregar a página completa.Image from Krusche CompanyO CSR é excelente para aplicativos que exigem interatividade rápida e não dependem muito do SEO. É especialmente útil para aplicativos de uma única página (SPA) que carregam uma vez e, em seguida, atualizam o conteúdo dinamicamente sem recarregar a página.Está relacionada ao Server-Side Rendering (SSR), mas com uma abordagem um pouco diferente. Ela cria páginas estáticas a partir de dados dinâmicos antes mesmo de serem solicitadas por um usuário. Deixa explicar como funciona:Quando você usa SSG, o processo de criação das páginas da web acontece antes de os usuários acessarem o site. Isso significa que, em vez de gerar a página toda vez que alguém faz uma solicitação, o site é gerado antecipadamente e os resultados são armazenados como arquivos estáticos.Os dados que você deseja exibir nas páginas são buscados de fontes como bases de dados, APIs ou sistemas externos durante uma fase de construção do site, geralmente durante a compilação ou implantação do aplicativo.Depois que os dados são obtidos, o aplicativo cria páginas HTML completas para cada URL que você deseja pré-renderizar. Cada página é gerada como um arquivo estático.Quando um usuário acessa uma dessas páginas, o servidor entrega o arquivo estático correspondente, que já contém o HTML completo e todos os recursos necessários, como JavaScript e CSS.Isso resulta em uma experiência de carregamento super rápido para os usuários, porque as páginas estão prontas para serem exibidas imediatamente, sem atrasos na geração de conteúdo no servidor.A pré-renderização (SSG) é especialmente útil para sites que têm conteúdo que não muda frequentemente, como blogs, sites de comércio eletrônico com produtos estáticos e páginas informativas. Ela combina a eficiência de páginas estáticas com a capacidade de oferecer conteúdo dinâmico quando necessário, tornando-a uma técnica poderosa para criar sites rápidos e eficazes.O sistema de roteamento baseado em sistema de arquivos do Next.js é uma abordagem de roteamento simplificada e intuitiva que utiliza a estrutura de pastas e nomes de arquivos para definir as rotas de um aplicativo web. Aqui estão os principais princípios de funcionamento:Pasta “pages”: O ponto central desse sistema é a pasta chamada “pages” no diretório raiz do projeto Next.js. É dentro dessa pasta que você cria os arquivos que representam as diferentes rotas do seu aplicativo. NB: Para a última versão do NextJS a pasta pages pode ser substituida por app, que continua recebendo as rotas e adiciona outros ficheiros como layoutsNome dos arquivos: O nome de cada arquivo na pasta “pages” determina a rota correspondente no seu aplicativo web. Por exemplo, um arquivo chamado “index.js” na pasta “pages” corresponde à página inicial do seu aplicativo e será acessível em “/”.Subpastas: Você pode criar subpastas dentro da pasta “pages” para organizar as rotas do seu aplicativo. As subpastas também determinam a estrutura da URL. Por exemplo, se você criar uma pasta “blog” e nela um arquivo “post.js”, a rota correspondente será “/blog/post”.Roteamento automático: O Next.js cuida automaticamente do roteamento com base na estrutura de pastas e nomes de arquivos. Você não precisa configurar rotas manualmente em um arquivo de configuração. Isso simplifica o desenvolvimento e a manutenção do aplicativo.Parâmetros dinâmicos: Você pode criar rotas com parâmetros dinâmicos usando parenteses retos[ ] nos nomes dos arquivos. Por exemplo, um arquivo chamado "[id].js" pode corresponder a rotas como "/produto/123" ou "/produto/456", onde "123" e "456" são valores dinâmicos.Página 404: Para lidar com páginas não encontradas (erro 404), você pode criar um arquivo chamado “404.js” na pasta “pages”. Ele será exibido quando alguém tentar acessar uma rota que não existe.Image from Next.JS BlogEm resumo, o sistema de roteamento baseado em sistema de arquivos do Next.js torna a definição e organização de rotas em um aplicativo web simples e intuitiva, aproveitando a estrutura de pastas e nomes de arquivos para criar as rotas automaticamente. Isso elimina a necessidade de configurações complicadas de roteamento e facilita o desenvolvimento de aplicativos web com o Next.js.O Next.js oferece otimizações para imagens, fontes e scripts, a fim de melhorar a experiência do usuário, vamos explicar como isso acontece:1. Otimização de Imagens:Carregamento Lento (Lazy Loading):O Next.js configura automaticamente o carregamento lento (lazy loading) para imagens usando o componente next/image. Isso significa que as imagens são carregadas apenas quando ficam visíveis na janela do navegador. Isso melhora o desempenho da página, reduz a largura de banda utilizada e acelera o tempo de carregamento.import Image from 'next/image';// Exemplo de uso com carregamento lentoDescrição da imagemTamanhos e Formatos Otimizados:O Next.js realiza a otimização automática de tamanhos e formatos de imagem. Durante o processo de construção, ele gera várias versões das imagens com diferentes tamanhos e formatos. O navegador escolhe a versão mais adequada com base no dispositivo do usuário, economizando largura de banda e melhorando o desempenho.Imagens Responsivas:O componente next/image oferece suporte a imagens responsivas. Você pode especificar width e height para as imagens, mas o Next.js também gera imagens responsivas semelhantes ao atributo srcset do HTML. Isso permite que o Next.js selecione a imagem adequada com base no tamanho da tela do dispositivo.2. Otimização de Fontes:O Next.js permite otimização do carregamento de fontes e isso acontece da seguinte forma:Pré-carregamento de Fontes Críticas:Você pode usar o atributo rel="preload" em links de fontes críticas para pré-carregá-las. Isso garante que as fontes estejam prontas para uso assim que forem necessárias, melhorando a renderização da página.Carregamento Assíncrono:O Next.js facilita o carregamento assíncrono de fontes usando o atributo rel="stylesheet" em links de folhas de estilo. Isso permite que o navegador carregue as fontes em segundo plano, sem bloquear o carregamento da página.3. Otimização de Scripts:Carregamento Assíncrono de Scripts:O Next.js permite carregar scripts de maneira assíncrona, o que significa que eles não bloqueiam o carregamento da página. Você pode usar o atributo async em tags



This post first appeared on VedVyas Articles, please read the originial post: here

Share the post

Porque é que o React passou a recomendar o uso do NextJs para a criação de novos projectos?

×

Subscribe to Vedvyas Articles

Get updates delivered right to your inbox!

Thank you for your subscription

×