Tech TutorBangla Web Documentation
Portfolio
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • RTK Query Documentation39টি অধ্যায়
প্রযুক্তি নির্বাচন
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • Redux Intro
  • Architecture
  • Redux Toolkit
  • Project Setup
  • Folder Structure
  • configureStore
  • Redux Provider
  • createSlice
  • Reducers & Actions
  • Typed Hooks
  • Selectors
  • Devtools
  • RTK Query
  • createApi
  • API Middleware
  • API Tags
  • Fetch List
  • Fetch Detail
  • Mutation — Create
  • Mutation CRUD
  • Cache Invalidation
  • Cache Lifecycle
  • Polling
  • Query Selectors
  • Optimistic Update
  • Cart Slice Full
  • Cart UI
  • Local vs Server
  • Listener Middleware
  • Error Handling
  • Loading States
  • Serializability
  • SSR Prefetch
  • Complete Flow
  • Complete Project
  • Production
  • Common Mistakes
  • Best Practices
  • Interview Q&A
  1. Docs
  2. RTK Query
  3. Fetch List — useGetProductsQuery
RTK QueryBeginner

Fetch List — useGetProductsQuery

কম্পোনেন্টে auto-generated hook ব্যবহার — loading/data — বাংলায়।

4টি অংশবাংলা ভাষায়
src/components/products/product-grid.tsxtsx
tsx
"use client";

import { useGetProductsQuery } from "@/features/orders/ordersService";
import { ProductCard } from "./product-card";

export function ProductGrid() {
  // hook auto-created from builder.query
  const {
    data,
    isSuccess,
    isLoading,
    isError,
    refetch,
  } = useGetProductsQuery();  // void arg

  if (isLoading) {
    return <div className="grid gap-4">
      {Array.from({ length: 6 }).map((_, i) => (
        <ProductCardSkeleton key={i} />
      ))}
    </div>;
  }

  if (isError) {
    return (
      <ErrorMessage
        title="Product লোড করা যায়নি"
        onRetry={() => refetch()}
      />
    );
  }

  if (isSuccess && data.length === 0) {
    return <EmptyMessage text="কোনো product নেই" />;
  }

  return (
    <div className="grid gap-4 sm:grid-cols-2 lg:grid-cols-3">
      {data?.map((product) => (
        <ProductCard key={product.id} product={product} />
      ))}
    </div>
  );
}

Generated hook fields

Propertyঅর্থ
datasuccess-এ fetched result
isLoadingপ্রথমবার fetch (কোনো cache নেই)
isFetchingযেকোনো fetch চলা (background সহ)
isErrorlast fetch ব্যর্থ
errorerror object (serialized)
isSuccessdata present
refetchম্যানুয়ালি আবার fetch
এক hook-এ অনেক component

একই endpoint+args-সহ বিভিন্ন component-এ use করা হলে একটাই fetch হয় — কারণ cache একই key-তে। এই deduplication-ই RTK Query-র core value।

শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।
আগেরTags — providesTags / invalidatesTagsপরেরFetch Detail — useGetProductByIdQuery
এই পেজে
Tech Tutor

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

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

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

mdanamolhasan1998@gmail.com