متدهای امری TanStack Query سادهتر میشن
خلاصهٔ کاملتر
تو ریپازیتوری TanStack Query یه Pull Request باز شده که دو متد تازه به QueryClient اضافه میکنه: query() و infiniteQuery(). اینها قراره جای fetchQuery() و fetchInfiniteQuery() رو بگیرن، یعنی همون متدهایی که وقتی میخوای بیرون از هوکها و بهصورت دستی دیتا بگیری صداشون میزنی. نویسندهٔ PR میگه این کار پیادهسازی بحث شمارهٔ ۹۱۳۵ تو همون ریپازیتوریه.
فرق اصلی متدهای جدید با قدیمیها اینه که به تنظیمات خود کوئری احترام میذارن. select (یعنی تابعی که دیتای خام رو قبل از تحویل به کامپوننت تبدیل میکنه) روی خروجی اعمال میشه، مقدار enabled دیده میشه و skipToken هم معنی پیدا میکنه. اگه کوئری غیرفعال باشه یا skipToken گذاشته باشی و هیچ دیتای کششدهای برای برگردوندن نباشه، متد خطا پرتاب میکنه. یعنی دیگه لازم نیست این شرطها رو دستی کنار متد امری تکرار کنی.
همزمان سه متد قدیمی fetchQuery، prefetchQuery و ensureQueryData تگ deprecated خوردن. تو changeset این PR یه انتشار minor برای پکیج @tanstack/query-core ثبت شده، پس فعلاً چیزی حذف نمیشه و فقط مسیر مهاجرت باز میشه. مستندات و آداپتورهای فریمورکها، یعنی ریاکت و Preact و Vue، تو PRهای جداگانهای میان که روی همین یکی چیده شدن.
PR هنوز مرج نشده و ریویوی خودکار چند ریسک سازگاری رو علامت زده. جای پارامتر جنریک TQueryKey تو امضای query() عوض شده و همین میتونه کدهایی رو که جنریکها رو صریح مینویسن بشکنه. تو infiniteQuery() هم جنریک TData معنی متفاوتی نسبت به fetchInfiniteQuery() داره که مهاجرت رو لغزنده میکنه. مورد سوم اینه که برای کوئریهای skipToken ممکنه دیتای کششدهٔ موجود برنگرده.
نویسنده تو توضیح PR شفاف گفته که تو بخشهایی از کد از AI کمک گرفته، بیشتر برای تستهای جدید و تولید تایپها و اینترفیسها، ولی خودش همهٔ کد رو چند بار خونده و متن توضیح PR رو دستی نوشته.
نکات کلیدی:
- query() و infiniteQuery() به QueryClient اضافه میشن و جایگزین fetchQuery() و fetchInfiniteQuery() هستن.
- متدهای جدید select، enabled و skipToken رو رعایت میکنن و نبود دیتای کششده در حالت غیرفعال باعث پرتاب خطا میشه.
- fetchQuery، prefetchQuery و ensureQueryData تگ deprecated گرفتن ولی حذف نشدن.
- changeset این PR یه انتشار minor برای @tanstack/query-core ثبت کرده.
- ریویوی خودکار تغییر ترتیب جنریک TQueryKey رو ریسک شکستن سازگاری دونسته.




