আমি কেন TanStack Query শেখা শুরু করলাম
আমি আজ TanStack Query শেখা শুরু করলাম।
এটি আপনার React অ্যাপ তৈরির ধরন বদলে দেয়।
অনেক ডেভেলপার মনে করেন এটি Redux-এর মতো একটি state management টুল। কিন্তু এটি তা নয়। এটি ভিন্ন একটি সমস্যার সমাধান করে।
React অ্যাপ দুটি ধরণের state হ্যান্ডেল করে:
• UI state: বাটন, মোডাল এবং ইনপুট। • Server state: API থেকে আসা ডেটা যেমন ইউজার বা প্রোডাক্ট।
বেশিরভাগ ডেভেলপার server state ম্যানেজ করার জন্য useState, useEffect অথবা Redux ব্যবহার করেন। এটি খুব দ্রুত জটিল হয়ে পড়ে। Server data হ্যান্ডেল করা কঠিন কারণ এটি পরিবর্তনশীল, এর জন্য caching প্রয়োজন এবং এটি ফেইল করতে পারে।
TanStack Query হলো একটি server-state manager। এটি আপনার হয়ে এই কাজগুলো সম্পন্ন করে:
• ডেটা ফেচ করা (Fetching data) • রেসপন্স ক্যাশ করা (Caching responses) • পুরনো ডেটা আপডেট করা • ব্যাকগ্রাউন্ডে রিফেচ করা (Background refetching) • এরর হ্যান্ডলিং (Error handling) • লোডিং স্টেট (Loading states) • রিট্রাই লজিক (Retry logic)
আপনাকে আর ম্যানুয়ালি লোডিং এবং এরর লজিক লিখতে হবে না। আপনি শুধু অ্যাপটিকে বলবেন আপনার কী ডেটা প্রয়োজন।
এই টুলটি আপনার UI এবং API-এর মাঝে একটি স্মার্ট ক্যাশ লেয়ার (cache layer) তৈরি করে।
যখন আপনার UI ডেটা চায়, টুলটি প্রথমে ক্যাশ চেক করে। যদি ডেটা থাকে, তবে এটি সাথে সাথে তা দেখিয়ে দেয়। এটি আপনার অ্যাপকে দ্রুতগতির করে তোলে।
টুলটি ব্যাকগ্রাউন্ডে ডেটা আপডেটও করে। ফলে কোনো ফ্লিকারিং (flickering) ছাড়াই আপনার UI সবসময় আপ-টু-ডেট থাকে।
এটি স্বয়ংক্রিয়ভাবে জটিল পরিস্থিতিগুলো সামাল দেয়:
• উইন্ডো রিফোকাস করলে এটি ডেটা রিফেচ করে। • নেটওয়ার্ক পুনরায় সংযুক্ত হলে এটি রিফেচ করে। • ইন্টারনেট দুর্বল থাকলে এটি ক্যাশ করা ডেটা দেখায়।
জটিল useEffect হুক লেখার পরিবর্তে, আপনি মাত্র একটি সহজ লাইন ব্যবহার করবেন:
const { data, isLoading, error } = useQuery({
queryKey: ['users'],
queryFn: fetchUsers
});
আপনার শুধু এটুকুই প্রয়োজন।
অন্যান্য টুলও রয়েছে:
• Redux Toolkit: জটিল UI লজিকের জন্য ভালো কিন্তু server state-এর জন্য আদর্শ নয়। • SWR: সহজ ক্যাশিংয়ের জন্য একটি লাইটওয়েট বিকল্প। • Apollo Client: GraphQL API-এর জন্য সেরা।
আপনি যদি REST API নিয়ে কাজ করেন এবং কম কোড লিখে একটি দ্রুতগতির UI চান, তবে TanStack Query ব্যবহার করুন।
আধুনিক ফ্রন্টএন্ড ডেভেলপমেন্ট হলো পারফরম্যান্স এবং ডেটা সিঙ্ক্রোনাইজেশনের বিষয়। TanStack Query কঠিন কাজগুলো সামলে নেয় যাতে আপনি ফিচারের ওপর মনোযোগ দিতে পারেন।
কম কোড লেখা লক্ষ্য নয়। লক্ষ্য হলো আরও স্মার্ট সিস্টেম তৈরি করা।
Source: https://dev.to/usama_dev/why-i-started-learning-react-query-tanstack-query-today-5ceg