Tech TutorBangla Web Documentation
Portfolio
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • TanStack Documentation42টি অধ্যায়
প্রযুক্তি নির্বাচন
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • Project Overview
  • Architecture
  • Folder Structure
  • Setup Next.js
  • Axios Setup
  • API Client
  • API Types
  • Query Install
  • Query Provider
  • Query Keys
  • Data Fetching
  • States
  • Devtools
  • Create Mutation
  • Update Mutation
  • Delete Mutation
  • Cache Invalidation
  • Optimistic Update
  • Pagination
  • Search
  • Filtering
  • Sorting
  • TanStack Table
  • Table Explore
  • Table Columns
  • Table Actions
  • React Hook Form
  • Zod Validation
  • Create Form
  • Edit Form
  • Dialog Modal
  • Delete Confirmation
  • Complete CRUD Flow
  • Full Integration
  • Error Handling
  • Loading States
  • Reusable Components
  • Production
  • Complete Project
  • Common Mistakes
  • Best Practices
  • Interview Q&A
  1. Docs
  2. TanStack
  3. Cache Invalidation
TanStackAdvanced

Cache Invalidation

invalidateQueries-এর কৌশল, filtered invalidation ও কোথায় কীভাবে ইনভালিড করা উচিত — বাংলায়।

9টি অংশবাংলা ভাষায়

মিউটেশনের সফলতার পর biggest সিদ্ধান্ত — কোন cache ইনভালিড করব। খুব বেশি ইনভালিড = অনেক request; খুব কম = পুরনো ডেটা। সঠিক কৌশল শিখি।

invalidateQueries

ভিত্তিts
ts
queryClient.invalidateQueries({ queryKey: productKeys.all });
// → key 'products' prefix-এর সব query 'stale' হয় + active গুলো refetch হয়
অতি সুনির্দিষ্টts
ts
// শুধু list queries (table/filter)
queryClient.invalidateQueries({ queryKey: productKeys.lists() });

// শুধু একটি detail
queryClient.invalidateQueries({ queryKey: productKeys.detail("p1") });

// শুধু অ্যাকটিভ queries refetch, বাকিদের শুধু stale
queryClient.invalidateQueries({
  queryKey: productKeys.lists(),
  refetchType: "active",
});

কোন mutation → কোন invalidation

MutationInvalidateকেন
CreateproductKeys.allনতুন item list/detail-তে আসতে পারে
UpdateproductKeys.lists() + detaillist-গুলো বদলেছে; edit-করা item-ও
DeleteproductKeys.allযেকোনো list থেকে item সরে যাবে

Filtered invalidation (predicate)

শর্তমতো invalidatets
ts
// category filter-এর list-গুলোর শুধু 'active' বিশেষ inform
queryClient.invalidateQueries({
  queryKey: productKeys.lists(),
  predicate: (query) => {
    const params = query.queryKey[2] as ProductQueryParams;
    return params.status === "active";
  },
});
invalidate ≠ refetch immediate

invalidateQueries-এ query 'stale' + currently-mounted গুলো refetch হয়। ব্যাকগ্রাউন্ড (unmounted) query পরে যাবতীয় refetch হয়। তাই প্রায়ই যে invalidate-ই আপনাকে ভাবে-ঠিক ঠিকই — অতর্কিত request-এর ভয় নেই।

শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।
আগেরDelete MutationপরেরOptimistic Update
এই পেজে
Tech Tutor

বাংলায় ওয়েব ডেভেলপমেন্ট ডকুমেন্টেশন শিখুন — ধাপে ধাপে।

Homeসব ডকুমেন্টেশনQuick Startআমার নোটস

© 2026 Tech Tutor. বাংলায় শিখুন, বাংলায় গড়ুন।

mdanamolhasan1998@gmail.com