Caching helps Next.js show pages faster by saving parts of the website. This means users don't have to wait long for pages to load.
Why caching is central to Next.js
export async function getStaticProps() { // fetch data here const data = {}; return { props: { data }, revalidate: 60, // cache this page for 60 seconds }; }
revalidate tells Next.js how long to keep the cached page before updating it.
Caching works automatically with Next.js data fetching methods like getStaticProps.
export async function getStaticProps() { return { props: { message: 'Hello!' }, revalidate: 10, }; }
export async function getServerSideProps() { // No caching here, runs on every request return { props: { time: Date.now() } }; }
export async function getStaticProps() { return { props: { data: 'Static content' }, revalidate: 3600, // cache for 1 hour }; }
This Next.js page shows the time it was generated. It caches the page for 30 seconds, so users see the same time if they visit within that period. After 30 seconds, Next.js updates the page with the new time.
export async function getStaticProps() { const time = new Date().toLocaleTimeString(); return { props: { time }, revalidate: 30, }; } export default function TimePage({ time }) { return ( <main> <h1>Current Time</h1> <p>This page was generated at: {time}</p> <p>It will update every 30 seconds.</p> </main> ); }
Caching improves speed but remember to set the right time so users get fresh data when needed.
Next.js handles caching automatically when you use revalidate with static props.
Too long caching can show old data; too short caching can reduce performance benefits.
Caching saves website parts to load pages faster.
Next.js uses caching with revalidate to control how often pages update.
Good caching balances fresh data and fast loading.
Practice
Solution
Step 1: Understand caching purpose
Caching saves website parts so they don't need to be rebuilt every time.Step 2: Connect caching to Next.js performance
Next.js uses caching to serve pages quickly by reusing saved content.Final Answer:
It stores parts of the website to load pages faster. -> Option AQuick Check:
Caching = Faster page loads [OK]
- Thinking caching deletes data after load
- Believing caching slows down the site
- Confusing caching with disabling JavaScript
Solution
Step 1: Identify caching update control
Next.js uses therevalidateproperty to set cache refresh timing.Step 2: Differentiate from other features
getStaticPropsfetches data at build time,useEffectruns on client,getServerSidePropsfetches on every request.Final Answer:
revalidate -> Option AQuick Check:
Cache update timing = revalidate [OK]
- Confusing getStaticProps with cache timing
- Using useEffect for server caching
- Thinking getServerSideProps controls caching
revalidate: 10 in getStaticProps?Solution
Step 1: Understand revalidate value meaning
Settingrevalidate: 10means Next.js will refresh the cached page every 10 seconds.Step 2: Compare with other options
It does not update on every request, never after build, nor every 10 minutes.Final Answer:
The page updates every 10 seconds after first load. -> Option BQuick Check:
revalidate: 10 means 10 seconds refresh [OK]
- Thinking revalidate is minutes, not seconds
- Believing page never updates with revalidate
- Confusing revalidate with server-side rendering
revalidate: '10' (string) instead of 10 (number). What happens?Solution
Step 1: Check revalidate type requirement
Next.js expectsrevalidateas a number, not a string.Step 2: Understand error on wrong type
Passing a string causes a type error and build failure.Final Answer:
Next.js throws a type error and fails to build. -> Option DQuick Check:
revalidate must be number, string causes error [OK]
- Passing string instead of number for revalidate
- Assuming Next.js auto-converts string to number
- Ignoring build errors caused by wrong types
Solution
Step 1: Balance freshness and speed
Lowrevalidatemeans data updates often but still uses cache for speed.Step 2: Compare other options
getServerSidePropsfetches every time but is slower; very highrevalidatedelays updates; disabling cache hurts speed.Final Answer:
Setrevalidateto a low number like 5 seconds. -> Option CQuick Check:
Low revalidate = fresh + fast [OK]
- Choosing getServerSideProps for speed
- Setting revalidate too high losing freshness
- Disabling cache hurting performance
Ready to prove it?
Pass the test and this pattern moves unknown
