Tutorials/NextJS/Getting Started
Lesson

Caching

Getting Started/NextJS

๐Ÿš€ 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?

plaintext
const nextConfig = {
  cacheComponents: true,
}

export default nextConfig

๐Ÿ‘‰ Ye enable karta hai advanced caching system


๐Ÿง  3. "use cache" Directive

๐Ÿ‘‰ Caching enable karne ke liye:

plaintext
export async function getUsers() {
  "use cache"
  return fetch("/api/users")
}

๐Ÿ”ฅ 4. Types of Caching

๐ŸŸข 1. Data-level Caching

๐Ÿ‘‰ Function ko cache karo

plaintext
export async function getProducts() {
  "use cache"
  return fetch("/api/products")
}

๐Ÿ‘‰ Same data โ†’ fast reuse


๐Ÿ”ต 2. UI-level Caching

๐Ÿ‘‰ Component ko cache karo

plaintext
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)

plaintext
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

plaintext
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

plaintext
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:

plaintext
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:

  1. Static (fast load)

  2. Cached data

  3. 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 เคธเคฎเคเฅ‹)

plaintext
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

  1. Data fetch

  2. Cache store

  3. Next request โ†’ fast response

  4. Revalidate โ†’ update data

Caching | NextJS | Softcrayons Tech Solutions