ট্যানস্ট্যাক রিঅ্যাক্ট কোয়েরি চিটশিট
ট্যানস্ট্যাক রিঅ্যাক্ট কোয়েরি (TanStack React Query) হলো রিঅ্যাক্ট অ্যাপ্লিকেশনে সার্ভার-স্টেট (server-state) পরিচালনার জন্য একটি শক্তিশালী লাইব্রেরি। এটি ডেটা ফেচিং, ক্যাশিং, সিঙ্ক্রোনাইজেশন, এবং আপডেটিং সহজ করে। এই চিটশিটে React Query-এর সব মৌলিক থেকে উন্নত ধারণা বিস্তারিতভাবে কভার করা হয়েছে।
১. রিঅ্যাক্ট কোয়েরি পরিচিতি
১.১ মৌলিক ধারণা
- কোয়েরি: সার্ভার থেকে ডেটা ফেচ করা।
- মিউটেশন: সার্ভারে ডেটা আপডেট করা।
- ক্যাশিং: ডেটা স্থানীয়ভাবে সংরক্ষণ।
- অটো-রিফেচ: উইন্ডো ফোকাস, নেটওয়ার্ক পুনঃসংযোগে স্বয়ংক্রিয় ফেচ।
১.২ ইনস্টলেশন
- NPM:
- Yarn:
২. সেটআপ
২.১ QueryClient এবং Provider
src/index.js
বা src/App.js
:
- QueryClient: কোয়েরি এবং মিউটেশন পরিচালনা করে।
- QueryClientProvider: অ্যাপে কোয়েরি কনটেক্সট প্রদান করে।
২.২ ডিভ টুল (ঐচ্ছিক)
src/App.js
:
৩. মৌলিক কোয়েরি
৩.১ useQuery হুক
queryKey
: কোয়েরির ইউনিক আইডি।queryFn
: ডেটা ফেচ করার ফাংশন।- রিটার্ন:
data
,isLoading
,error
,isFetching
, ইত্যাদি।
৩.২ স্ট্যাটাস হ্যান্ডলিং
প্রোপার্টি | বর্ণনা |
---|---|
isLoading | প্রথমবার ডেটা লোড হচ্ছে। |
isFetching | ব্যাকগ্রাউন্ডে ডেটা ফেচ হচ্ছে। |
isError | এরর হয়েছে। |
isSuccess | ডেটা সফলভাবে ফেচ হয়েছে। |
৪. কোয়েরি কনফিগারেশন
৪.১ ক্যাশিং এবং রিফেচিং
staleTime
: কতক্ষণ ডেটা "তাজা" থাকবে।cacheTime
: কতক্ষণ ক্যাশে থাকবে।refetchOnWindowFocus
: ফোকাসে রিফেচ।
৪.২ ডিফল্ট কনফিগারেশন
src/index.js
:
৫. মিউটেশন
৫.১ useMutation হুক
mutationFn
: মিউটেশন ফাংশন।onSuccess
: সফল হলে কলব্যাক।mutate
: মিউটেশন ট্রিগার।
৫.২ মিউটেশন স্ট্যাটাস
প্রোপার্টি | বর্ণনা |
---|---|
isLoading | মিউটেশন চলছে। |
isError | এরর হয়েছে। |
isSuccess | মিউটেশন সফল। |
৬. ডায়নামিক কোয়েরি
৬.১ প্যারামিটার সহ কোয়েরি
enabled
: কোয়েরি চালানোর শর্ত।
৭. ক্যাশ ম্যানেজমেন্ট
৭.১ QueryClient ব্যবহার
invalidateQueries
: ক্যাশ অবৈধ করে রিফেচ।prefetchQuery
: আগে থেকে ডেটা ফেচ।
৭.২ ক্যাশ আপডেট
৮. অপটিমিস্টিক আপডেট
onMutate
: আপডেটের আগে অপটিমিস্টিক আপডেট।onError
: এরর হলে রোলব্যাক।onSettled
: শেষে রিফ্রেশ।
৯. প্যাজিনেশন
৯.১ useInfiniteQuery
getNextPageParam
: পরবর্তী পেজ নির্ধারণ।
১০. এরর হ্যান্ডলিং
১১. কাস্টম হুক
১২. উদাহরণ: একটি সম্পূর্ণ অ্যাপ
১২.১ অ্যাপ সেটআপ
src/App.js
:
১২.২ পোস্ট লিস্ট
src/PostList.js
:
১২.৩ পোস্ট যোগ
src/AddPost.js
:
১৩. টিপস এবং সেরা অভ্যাস
- কোয়েরি কী: সবসময় ইউনিক এবং ডিস্ক্রিপটিভ কী ব্যবহার করুন।
- কাস্টম হুক: পুনঃব্যবহারযোগ্য লজিকের জন্য।
- অপটিমিস্টিক আপডেট: UX উন্নত করতে ব্যবহার করুন।
- ডিভ টুল: ডেভেলপমেন্টে সমস্যা খুঁজতে।