سرور کامپوننت‌ها در برابر کلاینت کامپوننت‌ها؛ کدام را کی استفاده کنیم؟

مدل ذهنی مرز سرور و کلاینت در ری‌اکت مدرن، با مثال‌های مشخص از اینکه کدام طرف چه چیزی را باید ببیند — و نکست واقعاً چه چیزی را تدوین می‌کند.

۱۱ شهریور ۱۴۰۵

socials-vertical icons
سرور کامپوننت‌ها در برابر کلاینت کامپوننت‌ها؛ کدام را کی استفاده کنیم؟ post featured image

سرور کامپوننت‌ها در برابر کلاینت کامپوننت‌ها

مدل ذهنی در یک جمله

سرور کامپوننت جایی رندر می‌شود که داده‌ی تو آن‌جاست؛ کلاینت کامپوننت جایی که کاربرِ توست. بقیه‌ی ماجرا از همین یک جمله بیرون می‌آید.

سرور کامپوننت چه چیزهایی می‌دهد

  • دسترسی مستقیم به دیتابیس و فایل‌سیستم بدون یک API جداگانه.
  • صفر جاواسکریپت زمان اجرا برای بخش‌هایی که فقط محتوا نمایش می‌دهند.
  • باندل کوچک‌تر، چون کتابخانه‌هایی که سمت سرور استفاده می‌شوند هرگز به مرورگر نمی‌رسند.

چه چیزی شما را مجبور به کلاینت کامپوننت می‌کند

  • State و افکت: `useState`، `useEffect`، هندلر رویداد.
  • APIهای مرورگر: geometry، media query، storage.
  • Context و تعامل‌هایی که کاربر باید فوراً حس کند.

قسمت سخت وسط

پراپ‌هایی که از سرور کامپوننت رد می‌شوند داده‌ی سریال‌شده‌اند؛ پس شگفتی در مرز کمین کرده است.

  • تابع‌ها و instance های کلاس از این مرز عبور نمی‌کنند.
  • کلاینت کامپوننت‌ها را نزدیک برگ‌های تعاملی نگه دار و سرور کامپوننت‌ها را به سمت ریشه‌های داده ببر.
  • وقتی یک کامپوننت «هر دو» است، بشکنش: یک پوسته‌ی کلاینت و یک بدنه‌ی سرور.

این وبلاگ چطور سازمان‌دهی شده

صفحه‌ها و بدنه‌ی پست‌ها رندر سمت سرورند و تم‌تغییر و منوی موبایل جزیره‌های کلاینت. همین تقسیم باعث می‌شود سایت تعاملی بماند ولی جاواسکریپت کمی تحویل بدهد.

جمع‌بندی

به‌جای «این کامپوننت هوک دارد پس کلاینت» بپرس کار باید کجا اجرا شود، بعد بقیه را بسپار به فریم‌ورک.

socials-vertical icons

250

socials-vertical icons

2800

you might also like...

React Server Components vs. Client Components: When to Use Each post featured imageReact Server Components vs. Client Components: When to Use Each

The mental model behind the server/client boundary in modern React, with concrete examples of what belongs on each side — and what the next.js app router actually compiles.

parsaaghayi's blog logoparsaaghayi's blog logo

© 2024

All Rights Reserved , Inc.

parsa aghayi
سرور کامپوننت‌ها در برابر کلاینت کامپوننت‌ها؛ کدام را کی استفاده کنیم؟ | Parsa Aghayi's Blog