Performance: Hybrid rendering (static + server)
This affects page load speed by balancing static content delivery and server-rendered dynamic content, improving initial load and interactivity.
Pre-render static parts at build time and fetch dynamic data on server only for needed parts. export const prerender = true; export async function getServerSideProps() { const dynamicData = await fetchDynamicData(); return { props: { dynamicData } }; } function Page({ dynamicData }) { return <div> <StaticHeader /> <DynamicContent data={dynamicData} /> </div>; }
Render entire page on server for every request, including static parts. export async function getServerSideProps() { const data = await fetchData(); return { props: { data } }; } function Page({ data }) { return <div>{data.content}</div>; }
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Full server rendering every request | High (full DOM rebuild) | Multiple reflows per request | High paint cost due to full page update | [X] Bad |
| Hybrid static + server rendering | Low for static parts, moderate for dynamic parts | Single reflow for dynamic updates | Lower paint cost, faster visible content | [OK] Good |
---
const data = await fetch('https://api.example.com')
--- uses frontmatter with await fetch, which is correct. The other options lack frontmatter or use client-side hooks.---
const time = new Date().toLocaleTimeString();
---
Current Time:
{time}
---
const data = fetch('https://api.example.com/data');
---
{data.json()}
Pass the test and this pattern moves unknown