๐ Next.js Caching (Easy Notes)
๐ 1. Caching kya hota hai?
๐ Simple:
Same data ko baar-baar fetch na karna
Ek baar store karke reuse karna
๐ Benefit:
๐ Fast performance
โก Less API calls
โ๏ธ 2. Cache Enable kaise kare?
const nextConfig = {
cacheComponents: true,
}
export default nextConfig๐ Ye enable karta hai advanced caching system
๐ง 3. "use cache" Directive
๐ Caching enable karne ke liye:
export async function getUsers() {
"use cache"
return fetch("/api/users")
}๐ฅ 4. Types of Caching
๐ข 1. Data-level Caching
๐ Function ko cache karo
export async function getProducts() {
"use cache"
return fetch("/api/products")
}๐ Same data โ fast reuse
๐ต 2. UI-level Caching
๐ Component ko cache karo
export default async function Page() {
"use cache"
const data = await fetch("/api/users")
return <div>{data.length}</div>
}๐ Pure page cache ho jayega
โณ 5. Cache Duration (cacheLife)
import { cacheLife } from "next/cache"
export async function getData() {
"use cache"
cacheLife("hours")
}๐ Data kitne time tak cache rahega
โก 6. Fresh Data kab chahiye?
๐ "use cache" mat use karo
๐ Instead use:
Suspense
import { Suspense } from "react"
<Suspense fallback="Loading...">
<Component />
</Suspense>๐ Real-time data ke liye best
๐ช 7. Runtime Data (cookies, params)
๐ Ye dynamic hota hai
๐ Always Suspense me wrap karo
import { cookies } from "next/headers"
const theme = cookies().get("theme")๐ Cache directly use nahi kar sakte
๐ 8. Cache Key kaise banta hai?
๐ Based on:
Function arguments
Input values
๐ Example:
getUser(1)
getUser(2)๐ Dono alag cache
๐ฅ 9. Streaming + Caching
๐ Mix use hota hai:
Static โ cache
Dynamic โ Suspense
๐ง 10. Partial Prerendering (Important)
๐ Page 3 parts me hota hai:
Static (fast load)
Cached data
Dynamic data (stream)
๐ Isko bolte hain:
๐ PPR (Partial Prerendering)
โ 11. Kab cache use nahi kare?
Real-time data
User-specific data
Random values (Date.now, Math.random)
๐งช 12. Example (Complete เคธเคฎเคเฅ)
export default function Page() {
return (
<>
<h1>Blog</h1>
<CachedPosts />
<Suspense fallback="Loading...">
<UserData />
</Suspense>
</>
)
}๐ CachedPosts โ fast
๐ UserData โ dynamic
๐ง 13. Important Rules (Interview)
"use cache" = caching enable
cacheLife = duration
Suspense = dynamic loading
Cache key = input based
PPR = mix of static + dynamic
๐ฅ Short Revision (1 min)
๐ Cache = fast data
๐ use cache = enable
๐ Suspense = fresh data
๐ PPR = mixed rendering
๐ฅ Super Simple Line
๐ "Next.js me caching se performance fast hota hai aur Suspense se dynamic data handle hota hai"
๐ Full Flow
Data fetch
Cache store
Next request โ fast response
Revalidate โ update data