۱۲ آبان ۱۴۰۴
در این مطلب مقدمات RSC را بررسی میکنیم
React Server Component ها در نسخه 19 ریاکت معرفی شدند و قابلیت های جدید و متنوعی رو مهیا کردن. مثلا به کد زیر توجه کنید که چه مقدار کد نوشته شده برای Server Component ساده تر شده.
در کد بالا با منطق ساده خواندن و نمایش اطلاعات، خوانایی کد ما خیلی بهتر شده و این فقط به کد نویسی ساده تر منتهی نمیشه. در server component فرآیند خواندن داده و رندر html در سمت سرور انجام میشه و کاربر نهایی به سرعت و بدون نیاز به خواندن داده و رندر در سمت کلاینت، فورا نتیجه رو مشاهده میکنه که این قضیه به بهبود لود صفحه و سئو وبسایت ما کمک میکنه. اما شاید بگید که خب ما در فریمورک های ssr مثل next js قبلا هم server rendering داشتیم اما یک فرق اساسی اینجا وجود داره که خیلی کوتاه بهش اشاره میکنم. قبل از معرفی server component ها ما مجبور بودیم همه ی داده هایی که صفحه ی ما نیاز داشت و قصد داشتیم در لود اولیه صفحه داشته باشیم را قبل از هرچیزی کامل لود کنیم، یعنی فرض کنید شما میخواهید به صفحه ای که از قبل داشتید یک بخش جدید اضافه کنید، اونوقت مجبور بودید برای خواندن اطلاعات مورد نیاز آن بخش بیاید اطلاعات اون رو در تابع getServerSideProps بخوانید و به کل صفحه پاس بدید و دوباره از صفحه به خود کامپوننت. این کار اشکالات پترنی مثل prop drilling و tight coupling ایجاد میکنه و کد ما سنگین, اشتباه پذیر و سخت نگهداری میشه. اما هر server component فارق از اینکه تو چه صفحه ای استفاده شده، داده خودش رو درون خودش لود میکنه و دیگر نیاز نیست داده از چند لایه از بالا به پایین پاس داده بشه. برای مثال:
مزایای دیگر RSC:
امنیت: با توجه به اینکه کد های RSC سمت سرور اجرا میشن دیگه نیازی به نگرانی بابت leak/لو رفتن توکن ندارید و حتی میتونید مستقیم با دیتابیس در ارتباط باشید و کل پروژه رو روی این استک بنویسید. برای مثال: