mehdi saamaani
mehdi saamaani
خواندن ۳ دقیقه·۱ سال پیش

React query & Next js

سلام خدمت همه دوستان اول اینکه همینجا اعلام کنم این پست یک پست کامل آموزشی نیست صرفا یک سولوشن هست برای استفاده از react-query که اگر توی پروژه ازش استفاده میکنید به کارتون میاد.
اول از همه لازم هست که قدم قدم پیش بریم ما برای این که بخوایم از react-query استفاده کنیم لازم هست
توی app.js تغیراتی ایجاد کنیم که در ادامه توضیح میدم

اولیش QueryClient : از این متد برای تبادل با حافظه برنامه مون استفاده میکنیم

و از QueryClientProvider برای اتصال بین QueryClient و برنامه استفاده میشود

از این دو موردی که گفتم کافیه کد زیر رو ببینید و متوجه میشید این دومورد رو ما فقط ۱ بار درpages اصلی پروژه ایجاد میکنیم

میتونیم برای داشتن یک استرکچر جدید از Hook استفاده کنیم

نوشتن یک ساختار برای یک پروژه کاملا سلیقه ای هست ( البته بر اساس یک سری قواعد کلی ) ولی در این آموزش روش زیر پیشنهاد میشه میتونیم یک هوک برای پروژه داشته باشیم

example-hook.js file :

قبل از هرچیزی لازم هست که یک توضیح کوتاتهی در باره useMutation بدم بهطور کلی این تابع که توی React-query وجود داره یک تابع asynchronous هست و این ناهمزمانی اول اینکه از react 16 به بعد قابل استفاده هست دوم اینکه همونطوری که میبینید برای اضافه کردن / حذف کردن / آپدیت کردن کار برد داره و باید به این دقت کنید که استفاده از هر تابع باید سر جای خودش باشه توی نمونه بالا کاملا وظیفه useMutation مشخص هست. اگر یکم دقت کنید ما برای متد های get از useMutation استفاده نکردیم



example-service.js file:

منطقا باید از اول این مرحله اجرا بشه ولی همیشه برای یاد گیری روش خوبی هست که اول با مشکل بزرگ تر رو روبه رو بشید :) حالا گذشته از این حرف ها توی تصویر بالا میبینید که یک سری متد نوشته شده که کاملا مشخص هست بابت نوع متد ها که هر کدوم چه کاری داره انجام میده نکته مهم اینه که ببینید توی قسمت قبلی ( مرحله بالا تر ) میشه الان کامل فهمید که از این متد های service API ها چطوری استفاده شده

نکته : این موارد کدی که توی تصویر میبینید صرفا یک مثال هست برای درک بهتر جزئیات react-query. اول اینکه به این نکته دقت داشته باشید که از https://tanstack.com/ میتونید استفاده کنید و همینطور بابت مثال هایی که زده شد مثلا post-id لازم هست که دیتارو به صورت پویا وارد کنید البته قطعا خودتون میدونید این ها رو :)



استفاده از useAllPosts
از الان تا آخرین روزی که پروژه رو تحویل میدی میتونی با خیال راحت از API های کنترل شده استفاده کنی

فکر نمیکنم نیازی به توضیح باشه فقط قبل از هر کاری با console.log مراحل رو قدم به قدم برم جلو تا ببینی مقدار هوک useAllPost اصلا چی هست

این هم یک مثال دیگه هست برای استفاده از یکی دیگه از کد ها با postId

باز هم تاکید میکنم این چون بر اساس یکسری دیتا های فیک هست لازم هست که در پروژه واقعی دقت داشته باشید که مثلا در همین کد توی فایل های قبلی نیاز هست که id پاس داده بشه

یک مثال هم در باره post باهم میبینیم که روش کارش رو به صورت متفاوت ببینیم

شاید یکی از دلایلی که عکس گذاشتم این هست که به اجبار کد رو بنویسیم و دلیلش هم این هست که به ارور بخوریم و سعی کنیم ارور رو برطرف کنیم پیشنهاد دیگه این که لطفا از tanstack-query استفاده کنید و همین طور اول متن هم گفتم از react-devtools اسفتاده کنید تا روش کار با این ابزار رو هم یاد بگیرید خیلی بدرد میخوره

قطعا بی ایراد نیست نوشته ها من از مثال های آماده استفاده کردم که در وقت صرفه جویی بشه اگر انتقاد داشتید در خدمتم

react querynext js
شاید از این پست‌ها خوشتان بیاید