star-soft / starsoft-frontend-challenge

46 stars 121 forks source link

Descrição sobre adoção de Client Components em detrimento do SSR no Next.js 14 com Styled Components e finalização do projeto. #46

Open duhoshina opened 2 months ago

duhoshina commented 2 months ago

Implementei uma estratégia de renderização baseada em Client Components ao invés de utilizar o Server-Side Rendering (SSR) tradicionalmente oferecido pelo Next.js. Embora o SSR ofereça vantagens significativas em termos de tempo de carregamento inicial e SEO, o uso de styled-components introduz complexidades adicionais ao processo de SSR. A biblioteca styled-components manipula o CSS em JavaScript, o que pode introduzir um overhead de processamento e complicações na execução do código no lado do servidor.

Utilizando Client Components, garantimos que o estilo e a lógica de apresentação dos componentes sejam carregados e aplicados no cliente, garantindo uma maior consistência no processo de renderização. Dessa maneira, prevenimos problemas de estilos intermitentes ou FOUC (Flash of Unstyled Content), comuns em aplicações que misturam SSR com bibliotecas de estilo-em-JS de maneira não otimizada. Optar por Client Components permitiu simplificar a estrutura de código do projeto, evitando a complexidade adicional que SSR exige, especialmente em termos de configuração e manutenção de servidor. Além disso, essa abordagem pode contribuir para uma estratégia de deployment mais simples e menos sujeita a erros relacionados a renderização server-side.

Em resumo, a escolha por Client Components enquanto se utiliza styled-components no Next.js 14 visa otimizar a manutenabilidade do código, performance de carregamento client-side e a consistência de renderização. Essa abordagem é benéfica para nossa aplicação, considerando as características específicas do nosso projeto e as necessidades de nossa base de usuários.