Sete secções param de hidratar

Performancekamo-marketing
Shipped
19 de agosto de 2026 às 20:37 UTC
Author
Kamo
Commit
7ba3b84

Passo B. TrustBar, WhatReplacesWhat, Como Funciona, UseCases, Características, CTAStrip e Os preços são componentes do servidor agora. Eles renderizam para HTML e não enviam JavaScript. A única coisa que os mantinha no cliente era a análise. Nenhum. dos sete tinham estado, um árbitro ou um efeito — toda a sua interactividade era `onClick={() => trackEvent(...)}` em um link, e esse único prop estava arrastando A árvore inteira de cada secção em hidratação. É um atributo 'data-track' agora, Leia por um ouvinte delegado montado uma vez para a página. DEliberadamente NÃO `data-analytics-event`, e é por isso que o TrackedClicks existe em vez do próprio atributo do rastreador: analytics instala um ouvinte em fase de captura e, para qualquer âncora que o carregue, chamadas preventDefault (), aguarda seu farol, então define a localização. href — transformando a navegação de um cliente em "esperar pela análise, então hard reload", medido neste site em 1,5-8s de tempo morto por clique, e banido Está bem. O ouvinte aqui nunca toca o evento: sem prevençãoDefault, sem paragemPropagation, sem espera. Todos os cinco nomes de eventos sobrevivem, verificados contra as fontes de pré-conversão — cta-start-free, cta-view-pricing, cta-contact-sales, nav-click, Aprender mais. As contagens renderizadas são mais elevadas do que as contagens de locais de chamada porque os sites de chamadas estão dentro de `.map()`: doze placas de recursos, seis planos. Tudo 22 atributos pousam sobre o próprio <a> ou <botão> e cada valor de dados-track-props É o JSON. HomeClient não é mais um componente cliente, que é a mudança que fez o resto possível — um componente cliente não pode importar um servidor, por isso a directiva no topo desse arquivo tinha sido decidir a estratégia de renderização para o página inteira. Seus wrappers `dynamic()` e limites Suspense foram com ele: eles foram componentes de divisão de código que se hidrataram de qualquer maneira, e reserva `min-h-[600px]` para o conteúdo que o servidor já tinha produzido. Os dois ovos de Páscoa ainda precisa `ssr: false`, então eles se sentam atrás de seu próprio pequeno cliente limite. Oito componentes permanecem no cliente, e a lista agora é honesta: PartilhadoNavigation, JumpToBar, ScrollProgress e Hero para rolagem e reprodução estado; ShippedStrip porque ele obtém; FAQ para o seu acordeão; SignupSection for sua forma; Rodapé para back-to-top. O COMÉRCIO, porque este não é gratuito. A árvore renderizada de um componente do servidor é serializado para a carga útil de voo RSC, bem como o HTML, por isso o documento cresceu enquanto o JavaScript encolheu: Blocos JS 261,999 -> 243,579 gzip (-18,420, e 23 pedaços -> 15) documento 39.895 -> 53.877 gzip (+13.982) líquido -4,438 Os Bytes estão perto de uma lavagem. O ponto é o outro eixo: sete menos componente árvores para hidratar, contra avaliação de script medida a 922 ms e um LCP "elemento render atraso" de 1.810 ms. Este é o custo a que se destina, e é não visível numa contagem de bytes. É também por isso que esta terra como seu próprio compromisso. Se uma corrida disser o contrário, revertendo Este restaura a composição do cliente sem tocar no trabalho do Passo A.

All changes

Como o que vês no transporte?

Cada uma dessas atualizações pousa automaticamente em seu espaço de trabalho. Comece grátis e veja crescer semana após semana.

Começar Livre Para SempreVer Preços