در حال آمادهسازی
راهنمای عملی برای درک ماهیت Server Components و Client Components در Next.js App Router، تفاوت حجم باندل، نحوه تصمیمگیری برای use client و اشتباهات رایج جونیورها.

انتقال از معماری سنتی Single Page Application (SPA) به سمت Next.js App Router و React Server Components (RSC) یکی از مهمترین تحولات در توسعه فرانتاند مدرن بوده است. با این حال، بسیاری از توسعهدهندگان جونیور با مفهوم مرز سرور و کلاینت دچار سردرگمی میشوند.
در اپلیکیشنهای سنتی ریاکت (CRA یا Vite)، کلاینت یک فایل HTML تقریباً خالی را به همراه مگابایتها کد جاوااسکریپت دریافت میکرد. سپس مرورگر باید کل کد را پارس و اجرا میکرد تا المانها نمایش داده شوند. این امر منجر به کندی First Contentful Paint و حجم باندل بسیار سنگین میشد.
کامپوننتهای سرور، کامپوننتهای ریاکتی هستند که فقط و فقط روی سرور اجرا میشوند. کد جاوااسکریپت آنها هرگز به مرورگر کاربر دانلود یا ارسال نمیشود؛ بلکه خروجی ساختاریافته (Virtual DOM Stream) به مرورگر فرستاده میشود.
یک تصور غلط این است که 'use client' فایل را کاملاً به سمت کلاینت میبرد یا RSC را غیرفعال میکند. در واقع، دایرکتیو 'use client' مرز تعاملی بودن (Boundary of Interactivity) را مشخص میکند. شما تنها در شرایط زیر به آن نیاز دارید:
به جای اینکه کل صفحه یا Layout را با 'use client' علامتگذاری کنید، صفحه را Server Component نگه دارید و تنها دکمه یا بخش تعاملی را در یک فایل کلاینتی جداگانه استخراج کنید:
unknown nodeآگاهی از این سه چالش متداول به شما در حل سریع باگها و موفقیت در مصاحبههای فنی کمک شایانی میکند:
سرور کامپوننتها آینده اکوسیستم ریاکت هستند. با درک مرزهای سرور و کلاینت و پیادهسازی معماری تمیز، اپلیکیشنهایی با سرعت بارگذاری فوقالعاده و تجربه کاربری بینقص خواهید ساخت.

۵ تکنیک کاربردی و حرفهای برای افزایش کیفیت کدهای جاوااسکریپت، ریاکت و تایپاسکریپت؛ از شکستن صحیح کامپوننتها تا حذف کدهای تکراری و مدیریت تمیز خطاها.

بررسی انواع استیت در فرانتاند (Local، Shared، Server Cache و Global)، چرایی عبور از دردسرهای Prop Drilling و Context، و نحوه استفاده کاربردی از Zustand.