آموزش برنامه نویسی

ریکت (react) چیست ؟ چه کاربردی دارد ؟

ما در این وبلاگ آموزشی از شرکت برنامه نویسی وارنا قصد داریم تا شما را با کتابخانه ریکت آشنا کنیم و آن را به طور کامل شرح دهیم .

15 دقیقه مطالعه ۵ دی ۱۴۰۲ 764 بازدید مرتضی رستمیان
تصویر مقاله ریکت (react) چیست ؟ چه کاربردی دارد ؟
مسیر یادگیری فرانت‌اند

React چیست؟ آشنایی با یکی از مهم‌ترین ابزارهای توسعه فرانت‌اند

وقتی با HTML، CSS و JavaScript چند پروژه کوچک می‌سازید، معمولاً یک مشکل کم‌کم خودش را نشان می‌دهد: هرچه رابط کاربری بزرگ‌تر می‌شود، مدیریت بخش‌های مختلف صفحه هم سخت‌تر می‌شود. منو، فرم، کارت محصول، فیلترها، پنل کاربری و ده‌ها بخش دیگر باید با هم کار کنند و تغییر یکی از آن‌ها نباید کل پروژه را به‌هم بریزد.

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

در این مقاله می‌خواهیم بدون توضیح‌های سنگین ببینیم React چه کاری انجام می‌دهد، چه ارتباطی با JavaScript دارد، چه زمانی باید سراغ آن رفت و برای یادگیری درست آن چه مسیری منطقی‌تر است.

آیکن React برای آموزش برنامه نویسی فرانت اند
Wikimedia Commons — CC0
React چیست؟ کتابخانه JavaScript
کاربرد اصلی ساخت رابط کاربری
پیش‌نیاز مهم JavaScript
ادامه مسیر Next.js و پروژه واقعی

React دقیقاً چیست؟

React یا React.js یک کتابخانه JavaScript برای ساخت رابط کاربری است. ایده اصلی آن این است که رابط را به بخش‌های کوچک‌تر تقسیم کنیم و هر بخش مسئول قسمت مشخصی از صفحه باشد.

مثلاً در یک فروشگاه اینترنتی می‌توانید Header، کارت محصول، سبد خرید، فرم جست‌وجو و پنجره ورود را به‌عنوان Componentهای جداگانه در نظر بگیرید. هر Component می‌تواند ساختار، داده و رفتار مربوط به خودش را داشته باشد.

مزیت این روش زمانی بیشتر دیده می‌شود که پروژه رشد می‌کند. به‌جای جست‌وجو در یک فایل بسیار بزرگ، معمولاً می‌توانید دقیق‌تر بفهمید برای تغییر یک قسمت باید سراغ کدام Component بروید.

قبل از React

React چه ارتباطی با JavaScript دارد؟

React جای JavaScript را نمی‌گیرد. شما همچنان برای نوشتن منطق برنامه به JavaScript نیاز دارید. شرط‌ها، Functionها، Arrayها، Objectها، Moduleها و بسیاری از مفاهیمی که در React استفاده می‌کنید همان مفاهیم JavaScript هستند.

به همین خاطر کسی که JavaScript را فقط در حد چند مثال ساده دیده باشد، معمولاً هنگام ورود به React مجبور می‌شود هم‌زمان دو مسئله را یاد بگیرد: خود JavaScript و نحوه کار React. این موضوع می‌تواند مسیر را بی‌دلیل سخت‌تر کند.

اگر بتوانید قبل از React چند پروژه JavaScript ساده مثل To-do List، فرم اعتبارسنجی یا دریافت اطلاعات از API بسازید، درک مفاهیم React معمولاً منطقی‌تر و سریع‌تر پیش می‌رود.

چرا React در پروژه‌های فرانت‌اند کاربرد زیادی دارد؟

برای یک صفحه کوچک شاید اصلاً نیازی به React نداشته باشید. HTML، CSS و JavaScript معمولی می‌توانند کاملاً کافی باشند. اما وقتی تعداد بخش‌های تعاملی بیشتر می‌شود، مدیریت رابط کاربری بدون ساختار مشخص سخت‌تر خواهد شد.

تقسیم رابط به بخش‌های کوچک‌تر

هر قسمت از رابط می‌تواند Component مستقل خودش را داشته باشد و مسئولیت مشخصی را بر عهده بگیرد.

استفاده دوباره از Componentها

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

مدیریت بهتر تغییرات رابط

وقتی اطلاعات تغییر می‌کنند، React کمک می‌کند رابط کاربری براساس وضعیت جدید به‌روز شود.

مناسب‌تر برای پروژه‌های بزرگ‌تر

Componentها و ساختار مشخص می‌توانند توسعه و نگهداری رابط‌های پیچیده‌تر را قابل مدیریت‌تر کنند.

یکی از مهم‌ترین مفاهیم React

Component را مثل قطعه‌های یک رابط کاربری ببینید

Component بخشی از رابط کاربری است که می‌توان آن را جداگانه تعریف کرد. یک Component ممکن است به کوچکی یک دکمه باشد یا بخش بزرگ‌تری مثل Header یا فرم ثبت‌نام را مدیریت کند.

نکته جذاب زمانی است که همان Component در چند جای پروژه لازم باشد. مثلاً لازم نیست برای هر محصول، کارت محصول را دوباره از صفر بنویسید. یک Component می‌سازید و اطلاعات هر محصول را به آن می‌دهید.

همین نگاه Component-Based یکی از مفاهیمی است که باید در شروع React واقعاً درک شود؛ چون بسیاری از تصمیم‌های بعدی پروژه به نحوه تقسیم رابط به Componentها برمی‌گردد.

Props

اطلاعاتی که Component دریافت می‌کند

Props را می‌توان شبیه ورودی یک Component دید. مثلاً همان کارت محصول می‌تواند نام، قیمت و تصویر هر محصول را از طریق Props دریافت کند و براساس آن رابط را نمایش دهد.

State

اطلاعاتی که در طول کار تغییر می‌کند

State برای داده‌ای استفاده می‌شود که ممکن است هنگام کار کاربر تغییر کند؛ مثلاً تعداد کالاهای سبد خرید، باز یا بسته بودن یک پنجره یا مقدار واردشده در یک فرم.

React زمانی جا می‌افتد که داخل یک پروژه واقعی با آن کار کنید

دیدن اینکه مدرس چطور Component می‌سازد مفید است، اما تا زمانی که خودتان پروژه را از یک صفحه خالی شروع نکنید، خیلی از سؤال‌ها اصلاً به وجود نمی‌آیند.

وقتی خودتان پروژه می‌سازید تازه باید تصمیم بگیرید چه چیزی Component باشد، داده کجا نگهداری شود، Props از کجا بیاید و چه بخشی State لازم دارد.

این تصمیم‌ها با حفظ کردن چند دستور حل نمی‌شوند. برای همین ساخت پروژه‌های کوچک در React معمولاً از دیدن پشت سر هم چندین ساعت آموزش ارزش بیشتری دارد.

محیط توسعه و کدنویسی پروژه وب
Wikimedia Commons — CC0

React معمولاً در چه نوع پروژه‌هایی استفاده می‌شود؟

React محدود به یک نوع سایت نیست. هرجا رابط کاربری بخش‌های تعاملی زیادی داشته باشد، ساختار Component-Based آن می‌تواند کاربردی باشد.

داشبوردها

پنل‌هایی که شامل جدول، نمودار، فیلتر، فرم و اطلاعات در حال تغییر هستند.

فروشگاه‌های اینترنتی

کارت محصول، فیلتر، سبد خرید، جست‌وجو و بخش‌های تعاملی فروشگاه.

سامانه‌های آنلاین

پنل کاربری، سیستم مدیریت، فرم‌های چندمرحله‌ای و رابط‌های تحت وب.

پروژه‌های قابل توسعه

پروژه‌هایی که قرار است در آینده بخش‌های جدیدی به رابط آن‌ها اضافه شود.

تفاوت JavaScript و React چیست؟

JavaScript

JavaScript یک زبان برنامه‌نویسی است. منطق برنامه، کار با داده، Eventها، درخواست‌های شبکه و بسیاری از رفتارهای صفحه با JavaScript نوشته می‌شوند.

React

React کتابخانه‌ای است که با JavaScript کار می‌کند و تمرکز اصلی آن ساخت و مدیریت رابط کاربری با استفاده از Componentهاست.

بنابراین این دو را نباید رقیب هم بدانیم. شما JavaScript را یاد می‌گیرید و بعد React را به‌عنوان یکی از ابزارهای ساخت رابط کاربری روی همان دانش استفاده می‌کنید.

مطالعه مقاله JavaScript چیست
مسیر پیشنهادی

مسیر یادگیری React را از کجا شروع کنیم؟

01

HTML و CSS

قبل از React باید بتوانید یک صفحه وب ساده و واکنش‌گرا را با HTML و CSS بسازید.

02

JavaScript

Function، Array، Object، Module، Event، Async/Await و کار با API را تمرین کنید.

03

Component و JSX

یاد بگیرید رابط را به Componentهای منطقی تقسیم کنید و ساختار JSX را درست بشناسید.

04

Props، State و Eventها

در این مرحله ارتباط بین Componentها و تغییر داده در رابط کاربری را بهتر متوجه می‌شوید.

05

Hookها و مدیریت Side Effect

بعد از پایه‌ها سراغ Hookهایی مثل useState و useEffect بروید و کاربرد واقعی آن‌ها را در پروژه ببینید.

06

پروژه واقعی

فروشگاه کوچک، داشبورد، پنل کاربری یا اپلیکیشن مدیریت کارها گزینه‌های خوبی برای جمع کردن مفاهیم هستند.

قبل از رفتن سراغ Framework بعدی

اگر JavaScript را نفهمیده باشید، React مسئله را حل نمی‌کند

یکی از اشتباه‌های رایج این است که تصور کنیم React قرار است JavaScript را ساده کند و دیگر نیازی نیست خود زبان را خوب یاد بگیریم. در عمل خیلی از مشکلاتی که هنگام React می‌بینید اصلاً مشکل React نیستند و به JavaScript برمی‌گردند.

کار با Arrayها، Destructuring، Spread Operator، Promiseها، Async/Await و Moduleها در پروژه‌های React بارها تکرار می‌شود. هرچه این مباحث را بهتر بلد باشید، تمرکزتان بیشتر روی معماری رابط خواهد بود.

بنابراین اگر جایی در React مدام احساس می‌کنید کدها مبهم هستند، گاهی بهترین کار این است که چند روز به JavaScript برگردید و همان مفهوم را جداگانه تمرین کنید.

کد JavaScript به عنوان پیش نیاز یادگیری React
Wikimedia Commons — CC0

React و Next.js چه تفاوتی دارند؟

React روی ساخت رابط کاربری تمرکز دارد. اما وقتی یک پروژه کامل وب می‌سازید، فقط Component لازم ندارید؛ Routing، مدیریت صفحات، Rendering، دریافت داده و ساختار کلی برنامه هم اهمیت پیدا می‌کنند.

Next.js یک Framework بر پایه React است که بسیاری از این امکانات را در قالب یک ساختار مشخص در اختیار توسعه‌دهنده قرار می‌دهد. به همین دلیل معمولاً React را ابتدا یاد می‌گیریم و بعد سراغ Next.js می‌رویم.

اگر Component، Props، State و منطق اصلی React را نفهمیده باشید، ورود مستقیم به Next.js باعث می‌شود تشخیص اینکه هر قابلیت متعلق به React است یا خود Next.js سخت‌تر شود.

آیا یادگیری React سخت است؟

React در شروع ممکن است کمی متفاوت به نظر برسد، چون ناگهان با JSX، Component، Props، State و Hookها روبه‌رو می‌شوید. طبیعی است که در چند پروژه اول برای تصمیم‌های ساده هم زمان بیشتری صرف کنید.

چیزی که مسیر را واقعاً سخت می‌کند، معمولاً تلاش برای یادگیری همه چیز در چند روز است. نیازی نیست از همان ابتدا سراغ مدیریت State پیچیده، معماری‌های بزرگ یا ده‌ها کتابخانه جانبی بروید.

ابتدا یک Component ساده بسازید، بعد Props و State را اضافه کنید و کم‌کم پروژه را بزرگ‌تر کنید. React با پروژه‌های کوچک خیلی بهتر از فهرست بلند Syntaxها در ذهن می‌ماند.

چند اشتباه رایج هنگام یادگیری React

شروع React قبل از JavaScript

ضعف JavaScript معمولاً در React خودش را خیلی سریع نشان می‌دهد.

Componentهای خیلی بزرگ

اگر یک Component مسئول چند کار نامرتبط باشد، نگهداری و تغییر آن سخت‌تر می‌شود.

نصب کتابخانه برای هر مسئله

قبل از افزودن Dependency جدید ببینید آیا واقعاً پروژه به آن نیاز دارد یا نه.

تماشای آموزش بدون پروژه

React را باید با نوشتن Component و حل مسئله تمرین کرد.

سوالات متداول درباره React

React چیست؟

React یک کتابخانه JavaScript برای ساخت رابط‌های کاربری مبتنی بر Component است.

آیا قبل از React باید JavaScript بلد باشیم؟

بله. هرچه JavaScript را بهتر بلد باشید، درک منطق React و رفع خطاهای پروژه ساده‌تر خواهد بود.

آیا React برای هر سایتی لازم است؟

خیر. برای صفحات ساده ممکن است HTML، CSS و JavaScript کافی باشند. React بیشتر زمانی ارزش دارد که رابط کاربری تعاملی‌تر و بزرگ‌تر شود.

React و Next.js یکی هستند؟

خیر. React کتابخانه رابط کاربری است و Next.js Frameworkی است که روی React ساخته شده و امکانات بیشتری برای ساخت برنامه وب ارائه می‌کند.

بهترین راه تمرین React چیست؟

پروژه‌های کوچک بسازید و هر بار یک مفهوم جدید مثل Props، State، فرم یا دریافت اطلاعات از API را به پروژه اضافه کنید.

مسیر فرانت‌اند وارناپاد

React را زمانی شروع کنید که پایه JavaScript آماده باشد

اگر هدفتان ورود به فرانت‌اند است، بهتر است مسیر را مرحله‌ای جلو ببرید: HTML و CSS، سپس JavaScript و بعد TypeScript، React و Next.js.

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

جمع‌بندی؛ React را برای ساختن یاد بگیرید

React زمانی ارزش خودش را نشان می‌دهد که رابط کاربری پروژه از چند بخش ساده بزرگ‌تر شده باشد. Componentها کمک می‌کنند قسمت‌های مختلف رابط را جدا کنیم و Props و State ارتباط و تغییر داده را قابل مدیریت‌تر می‌کنند.

اما React قرار نیست ضعف در JavaScript را پنهان کند. اگر هنوز با Function، Array، Object یا Async Code مشکل دارید، کمی زمان بیشتر روی JavaScript معمولاً نتیجه بهتری از عجله برای رفتن به React دارد.

وقتی پایه آماده شد، بهترین روش یادگیری React این است که پروژه بسازید. از یک پروژه کوچک شروع کنید، اشتباه کنید، Componentها را چند بار بازطراحی کنید و اجازه بدهید مفاهیم کم‌کم در جریان کدنویسی واقعی برایتان جا بیفتند.