CodeShot
Seniorسختی 3 از ۵· در 20٪ مصاحبه‌های این حوزه پرسیده شده

تفاوت Server Component و Client Component در App Router چیست؟

نشان کردن

پاسخ کوتاه

Server Component فقط روی سرور اجرا و JS به مرورگر نمی‌فرستد؛ Client Component با "use client" علامت‌گذاری و در مرورگر هم اجرا می‌شود.

پاسخ کامل

قانون کلیدی: هر جا به State، Effect یا رویداد مرورگر نیاز دارید باید Client Component باشد؛ در غیر این صورت Server Component پیش‌فرض بهتر است چون حجم JS ارسالی به کلاینت را کم می‌کند.

مثال کد

tsx\n""use client"";\nexport default function Counter() { const [n, setN] = useState(0); ... }\n

اشتباه رایج

اضافه‌کردن ""use client"" به همهٔ کامپوننت‌ها از روی عادت، که مزیت اصلی Server Component را از بین می‌برد.