← Back to all tweets

Tweet by @infinterenders

View original on X

cache components kinda feel we are shifting the web rendering paradigms moving away from Route-level decisions (Static vs. Dynamic) and moving toward Component-level the core goal is pretty straight forward the magic of Cache Components lies in its ability to "punch holes" in a static shell. Traditionally, a single dynamic function like cookies() would "poison" an entire route, forcing it to be 100% dynamic. with cache components at Build Time: Next.js renders your tree as far as it can. When it hits a dynamic boundary (like a network request or runtime API) not wrapped in use cache, it stops and "punches a hole". the statics shell everything else your nav, your footer, your product description is just baked into static shell that just lives on the edge the stream imagine a user visits, the shell hits their screen instantly. The "holes" are then filled via a background stream as the server finishes the dynamic work. the amount of granular power we can get after using “ use cache “ is clean straight forward in the next js docs it’s for developers like me who just want more control over data freshness function level caching you can apply caching to a specific function or a single component, rather than the whole page Any arguments passed to a cached function become part of the cache key. If you pass userId, that user gets a personalized cached version without re-fetching from the database. you can just get immediate updates with updateTag the great ux comes from when the ui just reflect instantly 😛 the traditional revalidate tag is "eventually consistent" it takes time for the cache to purge and re-fetch. but now today things changed . updateTag allows a Server Action to invalidate the cache and re-render the updated data in the same request cycle. The user sees the change immediately, without a page refresh or a "stale" state. those who don’t know that Cache Components is built on React's new component . It introduces "Hidden" state preservation. When a user navigates away from a route, Next.js doesn't destroy it; it marks it as "hidden". If the user clicks "Back," the route reappears instantly with its state intact (scroll position, form inputs, etc.), providing a high-agency, app-like experience on the web you just enable it start using this today, opt-in via your next.config.js file const nextConfig = { cacheComponents: true, }

17
Reply