در حال دریافت اطلاعات ...
متن رفرنس
نکته مهم: تفاوت فراخوانی Server Action با await مستقیم در برابر startTransition
هنگام استفاده از Server Actionها در کلاینت کامپوننتها، بسته به نیازتان یکی از دو روش زیر را انتخاب کنید:
۱. فراخوانی مستقیم با await (بدون Transition)
کاربرد: عملیاتهای ساده، سریع و نقطهای که فقط یک State محلی (useState) را در همان کامپوننت تغییر میدهند (مثل آپدیت کردن عدد لایک).
ویژگی: مثل یک درخواست API معمولی عمل میکند. وضعیت بارگذاری (Loading) را باید دستی مدیریت کنید و ممکن است در آپدیتهای سنگین، رابط کاربری لحظهای فریز شود.
۲. فراخوانی داخل startTransition (یا استفاده از useTransition / useActionState)
کاربرد حیاتی: زمانی که Server Action شما شامل دستورات روتر Next.js مثل revalidatePath، revalidateTag یا redirect است.
ویژگی: به React میگوید رابط کاربری را قفل نکند تا صفحه همچنان واکنشگرا بماند. متغیر isPending را برای ساخت راحتترِ Loading به شما میدهد و رندر مجدد صفحه را نرمتر انجام میدهد.
📌 نکته طلایی فرمها: اگر Server Action را مستقیماً به پراپ action در تگ <form> بدهید، React و Next.js پشت صحنه به طور خودکار آن را درون یک Transition اجرا میکنند و نیازی به نوشتن دستی startTransition نیست.
عنوان کارت
پاسخ