مهدی عادلی فر
بنیانگذار توسینسو و برنامه نویس

React چیست؟ معرفی کامل React

یکی از کتابخانه‌های معروفی که برای برنامه نویسی در بخش فرانت اند (front-end)  وب سایت‌ها استفاده می‌شود React js است که تقریباً همه کسانی که در حوزه برنامه نویسی فعالیت می‌کنند نام آن را شنیده اند. در این مطلب قصد داریم که این کتابخانه را بررسی کنیم و ببینیم که در درجه اول برنامه نویسی فرانت اند چیست؟ و بعد از آن React چیست؟ و چه تاریخچه و مزایا و معایبی دارد؟ همچنین بررسی کنیم که React چه تفاوتی با Angular و Vue دارد؟ و به صورت کلی این کتابخانه را به صورت کامل بررسی کنیم.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

فرانت اند (front-end) چیست؟

فرانت اند چیست

قبل از اینکه وارد بحث اینکه React چیست بشویم ابتدا مفهوم front-end و برنامه نویسی فرانت اند را بررسی می کنیم. هنگامی که وب ظهور کرد و وب سایت‌ها پیدا شدند اصلاً با شکل و شمایل امروزی به کلی فرق داشتند. وب سایت‌ها معمولاً یک سری صفحات ایستا بودند که مطالبی را که شامل متن و عکس بودند را نمایش می‌دادند و با استفاده از لینک به یکدیگر متصل بودند. در این زمان صفحات وب طراحی می‌شدند و بر روی سرور آپلود می‌شدند.  بعد از آن نیاز به پویایی و ذخیره اطلاعات و پردازش سمت سرور پیش آمد که برنامه نویسان وب ظهور کردند. در این زمان وظیفه برنامه نویسان تولید برنامه‌ای بود که اطلاعات خاصی را روی دیتابیس ذخیره می‌کرد و بعد از آن با توجه به نیاز های مختلف و به شکل‌های گوناگون این اطلاعات از دیتابیس ها لود شده و در قالب یک صفحه به کاربر نهایی نمایش داده می شدند. در این بین اعتبارسنجی ها و پردازش هایی هم روی داده‌ها صورت می گرفت. تکنولوژی هایی مانند Jsp و Asp.net web forms مربوط به همین زمان بود. اما با ظهور برنامه‌های تک صفحه‌ای (SPA) و ajax انتظار کاربران وب از وب سایت‌ها بالا تر رفت و جذب سایت‌هایی شدند که به صورت زنده‌تر و با refresh کمتری کار می کردند. اینجا بود که برنامه نویسی به دو بخش front-end و back-end تقسیم شدند.
 کلمه فرانت اند یکی از کلمات پرکاربرد در برنامه نویسی است ولی معنی درست و دقیق آن این است که فرانت اند به بخشی از برنامه نرم افزاری گفته می‌شود که توسط کاربر قابل دیدن است و کاربر به طور مستقیم با آن تعامل دارد. Front-end شامل طراحی و توسعه المان های رابط کاربری (UI) و تجربه کاربری (UX) در برنامه می‌شود. این المان ها عبارتند از دکمه ها و فرم‌ها و لیست ها و منوها و عکس‌ها و متنها است که کاربران می‌توانند آن‌ها را ببینند و از طریق آن‌ها با برنامه کار کنند.


برنامه نویسی فرانت اند چیست؟

ًبرنامه نویسی فرانت اند

به برنامه نویسانی که بر روی توسعه front-end تمرکز دارند برنامه نویس فرانت اند گفته می شود. در برنامه نویسی فرانت اند برنامه نویسان از زبانها و تکنولوژی ها و فریمورک ها و ابزارهای مختلفی مانند html , css , javascript, React, Angular, Vue برای ساخت اجزای مختلف UI/UX استفاده می کنند. همچنین برنامه نویسان فرانت اند سازگاری برنامه و یکسان بودن نمایش و کارکرد برنامه را در مرورگر ها و دستگاه های مختلف بررسی می کنند.
برای تکمیل شدن برنامه نرم افزاری فرانت اند بخشی از برنامه اصلی است. به همین دلیل برنامه نویسان فرانت اند باید با سایر اعضای تیم مانند طراحان و برنامه نویسان back-end ارتباط داشته باشند و با هم همکاری کنند. جمع نتیجه کار back-end و front-end با هم کل برنامه یا وب سایت را تشکیل می‌دهد. 

React چیست؟

React چیست

React در وب سایت رسمی خود به این شکل تعریف شده است که React یک کتابخانه برای تولید رابط کاربری است. به عبارت دیگر React یک کتابخانه است که با استفاده از زبان جاوا اسکریپت توسعه داده شده است و برای تولید رابط کاربری از آن استفاده می شود. از این کتابخانه می‌توانید برای تولید وب سایت‌ها و اپلیکیشن های تحت وب پویا و قدرتمند و زیبا استفاده کنید زیرا که در حال حاضر شرکت های بسیار بزرگی برای پیاده‌سازی وب سایت و اپلیکیشن های تحت وب خود از آن استفاده می کنند.م شرکت متا (صاحب facebook , instagram, whatsapp) توسعه‌دهنده React است.  React به صورت متن باز منتشر شده است و جامعه open source می‌تواند آن را بررسی کرده و در مشکلات احتمالی را برطرف کند.  React یکی از محبوب‌ترین کتابخانه‌های طراحی UI است که سایت‌هایی مانند netflix , AirBnb از آن برای پیاده‌سازی وب سایت خود استفاده کرده‌اند که به میلیون‌ها کاربر خدمات رسانی می کنند.

React چیست

تاریخچه React چیست؟

React در سال 2011 توسط یکی از مهندسین فیس بوک به نام Jordan Walke ساخته شد. React اولین بار در ویژگی Newsfeed فیس بوک استفاده شد و به در سال 2013 به صورت عمومی منتشر شد. هدف از انتشار  React ساخت برنامه‌های بزرگ و پیچیده و پویا و کارا بود و امروزه  React تبدیل به یکی از محبوب‌ترین کتابخانه‌ها برای تولید UI شده است. از سال 2013 تا کنون به تدریج React در حال تکامل بوده است. آخرین نسخه منتشر شده از این کتابخانه نسخه 18.2.0 است که در مارس 2022 منتشر شده است و نسبت به نسخه های اولیه از کارایی و امکانات بیشتری برخوردار است.

چرا باید از React استفاده کنیم؟

React چیست

React قابلیت‌های بسیاری دارد که آن را تا این حد محبوب ساخته است که از جمله آن‌ها می‌توان به موارد زیر اشاره کرد:

  • React مبتنی بر مفهومی به نام component (کامپوننت) است و این کمک می‌کند تا به راحتی و در زمان کمتری بتوانیم UI را بسازیم.
  • ساختن و نوشتن کامپوننت های  React بسیار ساده است و به سادگی تعریف یک تابع می‌توانید یک کامپوننت جدید تعریف کنید.
  • استفاده از JSX برای قالب بندی کامپوننت ها به جای جاوا اسکریپت معمولی
  • React مبتنی بر جاوا اسکریپت است و برای یادگیری آن نیازی ندارید که یک زبان برنامه نویسی جدید یاد بگیرید.
  • یادگیری آسان  React به طوری که اگر html, css , javascript را بلد باشید می‌توانید به راحتی آن را یاد بگیرید.
  • امکان تست کردن آسان کامپوننت ها و کل برنامه
  • قابلیت استفاده مجدد از داده‌ها و کامپوننت ها که باعث می‌شود کار برنامه نویسان بسیار آسان‌تر شود.
  • کدهای  React بسیار کم حجم هستند و این قضیه باعث می‌شود که بتوان به راحتی سئوی سایت را قوی‌تر کرد.
  • React از مفهومی به نام Virtual DOM استفاده می‌کند. این قابلیت باعث می‌شود که تغییرات در UI بسیار سریع‌تر و کم هزینه تر انجام شود. یعنی در زمان کمتر و با صرف هزینه پردازشی کمتری می‌توانید UI برنامه خود را تغییر بدهید.

React با فریمورک های دیگر چه تفاوتی دارد؟

React تفاوت‌های زیادی با فریمورک های دیگر دارد که چند تای آن‌ها عبارتند از: Virtual DOM, معماری بر مبنای کامپوننت (component based architecture), جریان داده یک‌طرفه (one-way data flow), برنامه نویسی declarative (اعلانی)  و سینتکس JSX  هرکدام از این موارد را در ادامه توضیح خواهیم داد.

جریان داده یک‌طرفه (one-way data flow) چیست؟

در برخی فریمورک ها مانند angular دسترسی به عناصر DOM و جریان داده‌ها بین برنامه و عناصر به صورت دو‌طرفه انجام می شود. برای مثال یک متغیر را در برنامه در نظر بگیرید که به یک عنصر DOM مانند input متصل شده است. در حالت جریان داده‌های دوطرفه هر تغییری که در متغیر انجام شود در مقدار input هم اعمال می‌شود و هر متنی در input تایپ شود به صورت مستقیم در متغیر خواهد نشست حال همین امر را برای کامپوننت ها در نظر بگیرید. همین امر ممکن است که پیچیدگی هایی را هنگام خطایابی و نوشتن برنامه به وجود بیاورد. در React جریان داده‌ها به صورت یک‌طرفه است یعنی مثلاً فقط وقتی کاربر متنی را در input تایپ می‌کند در متغیر برنامه آپدیت می‌شود و اگر تغییری در مقدار متغیر بدهیم input از آن بی اطلاع خواهد بود. یا اگر بخواهیم از کامپوننت فرزند اطلاعاتی را برای کامپوننت والد ارسال کنیم باید یک callback را فراخوانی کنیم. این کار باعث می‌شود که ارتباطات بین کامپوننت ها و عناصر DOM ساده‌تر و قابل فهم تر باشد. 

SPA چیست؟

React و سایر فریمورک های وب برای تولید برنامه‌های تک صفحه‌ای استفاده می‌شوند. برنامه‌های SPA یا Single page applications برنامه‌هایی هستند که در آن‌ها مرورگر شما از یک صفحه به صفحه دیگر نمی‌رود و همیشه بر روی یک صفحه ثابت است. در نتیجه حالت loading در بالا مرورگر را فقط برای بار اول مشاهده می‌کنید. البته این به این معنی نیست که یک صفحه ایستای ساده ساخته می‌شود. اتفاقاً برعکس یک صفحه پویا ساخته خواهد شد که حتی می‌توان کل صفحه را تغییر داد و یا درخواست هایی را به سمت سرور ارسال کرد و پاسخ را گرفت و در صفحه نمایش داد و یا لیست هایی را در صفحه آپدیت کرد ولی صفحه refresh نمی شود. این کار با استفاده از فریمورک های فرانت اند و کدهای جاوا اسکریپتی و Ajax انجام می شود. 

React چگونه کار می کند؟

React برای تولید UI و انجام تغییرات در UI استفاده می‌شود. کار کردن  React به این شکل است که مستقیماً با DOM (عناصر موجود در صفحه) کار نمی‌کند بلکه یک DOM مجازی می سازد. هر تغییری که برنامه نویس بخواهد انجام دهد آن را مستقیماً بر روی DOM اعمال نمی‌کند بلکه به  React اعلان می‌کند (برنامه نویسی Declarative) سپس خود React تغییرات را بر روی DOM مجازی اعمال می‌کند و در صورت لزوم و بعد از اتمام کار به صورت یک‌جا بر روی DOM اصلی اعمال می شود. به این شکل برنامه نویس نگران افت کارایی و مشکلات تغییر DOM به صورت دستی نخواهد بود زیرا که React آن را مدیریت می کند.

Jsx چیست؟

React برای پیاده‌سازی کامپوننت ها از کدی به نام JSX استفاده می کند. البته JSX سینتکس جدیدی نیست و ترکیب جاوا اسکریپت با کدهای html است که در بدنه کامپوننت ها و برای قالب بندی استفاده می شود. JSX مخفف javascript xml است و برای کسانی که با html و جاوا اسکریپت به صورت جداگانه آشنایی داشته باشند می‌تواند قابل درک باشد. به شکلی که شما در داخل کد جاوا اسکریپت از کدهای html استفاده می کنید. این باعث می‌شود که یادگیری آن راحت‌تر باشد.

کامپوننت چیست؟

یک برنامه Reactی از مجموعه از کامپوننت ها ساخته شده است. کامپوننت های اجزای ریزی هستند که با هم ترکیب می‌شوند و یک برنامه کامل را تشکیل می دهند. اگر بخواهیم برنامه React را یک برنامه عادی تصور کنیم کامپوننت ها همان توابعی هستند که تعریف شده‌اند و با هم ترکیب می‌شوند و چندین بار استفاده می‌شوند تا برنامه اصلی ساخته شود. 
هر کامپوننت کدهای html, js خود را دارد و برای منظور خاصی در فایل جداگانه تعریف می شود. کامپوننت ها را می‌توان با هم ترکیب کرد و یک کامپوننت بزرگ‌تر ساخت و یا از یک کامپوننت چندین بار استفاده کرد. همچنین می‌توان بین کامپوننت ها داده‌ها را ردو بدل کرد.

DOM چیست؟

Dom چیست

DOM مخفف Document Object Model است. عناصر html موجود در یک صفحه وب به صورت درختی و داخل یکدیگر قرار دارند که هر شاخه می‌تواند شامل شاخه‌های دیگر و یا ویژگی‌هایی باشد. این مدل سازی را DOM می‌گویند. DOM را می‌توان با برنامه نویسی تغییر داد. به عبارت دیگر DOM یک واسط است که برنامه نویس به کمک آن می‌تواند محتویات و ساختار و یا قالب صفحه وب را تغییر دهد. هر فریمورکی که قرار است با صفحات وب کار کند مانند React با DOM کار می کند.

Virtual DOM چیست؟

React چیست

همانطور که گفتیم React برای کار با DOM یک  DOM مجازی و یا virtual DOM  می‌سازد ولی حالا DOM مجازی چیست؟ Dom مجازی مفهومی در برنامه نویسی وب است که برنامه نویسان React با کمک آن می‌توانند بدون آنکه Dom اصلی را Refresh کنند تغییراتی را که می‌خواهند در DOM اصلی به وجود بیاورند. در حقیقت DOM مجازی یک کپی سبک از DOM اصلی است که در حافظه نگهداری می‌شود و React با آن کار می کند. هر تغییری که کاربر بخواهد در DOM اصلی بدهد ابتدا بر روی DOM مجازی داده می شود. سپس React اقدام به مقایسه DOM مجازی با اصلی می‌کند و تغییراتی در DOM اصلی می‌دهد تا هر دو یکسان شوند.

برنامه نویسی declarative یا اعلانی چیست؟

برنامه نویسی اعلانی نوعی از برنامه نویسی است که شما درگیری انجام قدم به قدم عملیات نمی‌شوید و بیشتر توصیف می‌کنید که چه کاری را می خواهید. این به این معنی است که برنامه نویس فقط مشخص می‌کند که چه کاری قرار است انجام شود ولی مراحل و جزئیات آن را نمی‌گوید. برای مثال زبان SQL یک زبان declarative است.  در دستورات این زبان جستجوی قدم به قدم  داده‌ها و فیلتر کردن آن‌ها و خیلی از موارد سطح پایین به این شکلی که در زبان‌های توصیفی (imperative) وجود ندارد. برنامه نویس فقط داده‌هایی را که لازم دارد و شروطی را که برای جستجو لازم است را مشخص می‌کند و خود برنامه با توجه به دستورات داده شده داده‌ها را جستجو و واکشی می‌کند. در این نوع زبان‌ها لازم نیست که برنامه نویس نگران جزئیات سطح پایین باشد و فقط به مسأله خود فکر می‌کند و مسأله را باید درست مطرح کند. زبان‌هایی مانند Sql , html  و مدلی که در React استفاده می‌شود از مدل برنامه نویسی اعلانی یا declarative است.

React با جاوا اسکریپت چه ارتباطی دارد؟

React با جاوا اسکریپت چه ارتباطی دارد

React یک کتابخانه است و زبان جدیدی نیست. یعنی یک بسته کد آماده است که از قبل نوشته شده است. ولی زبانی که این کتابخانه با آن پیاده‌سازی شده است جاوا اسکریپت است. برای استفاده از این کتابخانه نیاز است که به زبان جاوا اسکریپت و نسخه های ES6, ES7 مسلط باشید. چون همه منطق های برنامه در React با استفاده از کدهای جاوا اسکریپت پیاده‌سازی می شوند. پس برای اینکه بتوانید یک برنامه نویس خوب React شوید باید قبل از آن بر زبان جاوا اسکریپت تسلط داشته باشد.

React چه تفاوتی با Angular و Vue دارد؟

تفاوت React با Angular , vue

React , Angular, Vue معروفترین و محبوب‌ترین فریمورک های فرانت اند هستند که در حال حاضر استفاده می شوند. هر سه این فریمورک ها شباهت‌هایی با هم دارند ولی تفاوت‌هایی هم با هم دارند. این تفاوت‌ها را از جنبه‌های گوناگونی بررسی می کنیم.
یادگیری: یادگیری React نسبت به بقیه آسان‌تر است سپس یادگیری Vue کمی دشوارتر از React است. اما یادگیری Angular نیاز به تلاش و مطالعه بیشتر از بقیه دارد. زیرا که ساختار نسبتاً پیچیده‌ای دارد.
معماری: React در اصل یک کتابخانه است و یک فریمورک کامل نیست. این یعنی انعطاف بیشتری دارد و اجازه می‌دهد که برنامه نویسان معماری مدنظر خود را انتخاب کنند و طبق آن پیش بروند. Vue هم یک کتابخانه است اما ساختار و قواعد بیشتر نسبت به React دارد. اما angular یک فریمورک کامل است و اگر شما بخواهید با آن کار کنید باید دقیقاً طبق معماری آن پیش بروید و از قواعد آن پیروی کنید.
کارایی (Performance): React به کارایی بالا و سرعت زیاد در رندر کردن صفحات شناخته می‌شود که همین ویژگی باعث می‌شود  برای برنامه‌های بزرگ انتخاب مناسبی باشد. از سوی دیگر Vue هم کارایی نسبتاً خوبی دارد ولی کمی کند تر از React است و در آخر سرعت Angular است که از هردوی فریمورک های قبلی کمتر است.
جامعه توسعه دهندگان (Community): React جامعه‌ای بزرگ از برنامه نویسان دارد و این باعث می‌شود که منابع و کتابخانه‌های بسیاری برای برنامه نویسان React موجود باشد. جامعه Vue نیز بزرگ است ولی به اندازه React نیست. از سوی دیگر جامعه angular بسیار بزرگ است و ابزارها و قابلیت‌های بسیاری را ارائه می‌کند ولی از آنجا که angular بیشتر بر روی برنامه‌های بزرگ و تجاری تمرکز کرده است بخشی از جامه angular روی برنامه‌های بسیار بزرگ تمرکز دارند.
ابزارها: ابزارها و کتابخانه‌های تست و خطایابی و بیلد مربوط به React بسیار گسترده هستند که می‌توان از آن استفاده کرد. ابزارهای ارائه شده برای vue هم کم نیستند ولی به گستردگی ابزارهای React نیستند. از طرفی دیگر angular دارای ابزارها و کتابخانه‌های بسیاری است که بخش زیادی از آن‌ها به صورت built-in در خود angular موجود هستند.

مطالعه بیشتر angular چیست

Next.Js چیست و چه ارتباطی با React دارد؟


معمولاً برنامه نویسان React گاهی در مورد Next.js صحبت می‌کنند حال خود Next.js چیست؟ Next.js یک فریم‌ورک متن باز برای ساخت برنامه‌های وب جامع است که بر پایه React ساخته شده است. این فریم‌ورک به توسعه‌دهندگان اجازه می‌دهد تا برنامه‌های وب سریع و پویا با استفاده از React و Node.js بسازند.
Next.js از ویژگی‌هایی مانند SSR (Server Side Rendering)، SSG (Static Site Generation)، داینامیک لودینگ، روتینگ داینامیک، و ... پشتیبانی می‌کند. با استفاده از SSR، محتوای سایت در سمت سرور رندر می‌شود و به کاربر ارسال می‌شود. این کار باعث بهبود سرعت بارگیری صفحات وب می‌شود. همچنین با استفاده از SSG، محتوای سایت در زمان ساخت وب سایت تولید می‌شود و به کاربر ارسال می‌شود. این کار باعث بهبود سرعت بارگیری صفحات وب و بهبود تجربه کاربری می‌شود.
Next.js از React به عنوان موتور رندر استفاده می‌کند و از بسیاری از ویژگی‌های React مانند JSX، کامپوننت‌ها، مدیریت وضعیت، و ... پشتیبانی می‌کند. با استفاده از Next.js، توسعه‌دهندگان می‌توانند برنامه‌های وب پویا و سریعی را با استفاده از React بسازند و از ویژگی‌های SSR و SSG برای بهبود سرعت و بهبود تجربه کاربری استفاده کنند.

Redux چیست و چه ارتباطی با React دارد؟

Redux یک کتابخانه مدیریت وضعیت برای برنامه‌های وب است که برای مدیریت وضعیت برنامه‌های وب بزرگ و پیچیده طراحی شده است. Redux به توسعه‌دهندگان اجازه می‌دهد تا وضعیت برنامه را در یک مکان مرکزی مدیریت کنند و به راحتی آن را به کامپوننت‌های مختلف React منتقل کنند.
React و Redux با هم کار می‌کنند و می‌توانند به عنوان یک ترکیب قدرتمند برای ساخت برنامه‌های وب استفاده شوند. React به عنوان یک کتابخانه رابط کاربری (UI) برای ساخت کامپوننت‌های وب استفاده می‌شود، در حالی که Redux به عنوان یک کتابخانه مدیریت وضعیت برای مدیریت وضعیت برنامه‌های وب استفاده می‌شود.
در Redux، وضعیت برنامه در یک شیء به نام "store" ذخیره می‌شود. کامپوننت‌های React می‌توانند به این "store" دسترسی داشته باشند و وضعیت برنامه را از آنجا بخوانند و به روز کنند. این کار باعث می‌شود که وضعیت برنامه در یک مکان مرکزی مدیریت شود و به راحتی قابل پیگیری و تغییر باشد.
بنابراین، React و Redux دو کتابخانه مجزا هستند که با هم کار می‌کنند و به توسعه‌دهندگان اجازه می‌دهند تا برنامه‌های وب پیچیده و بزرگ را با ساختاری ساده و قابل پیگیری بسازند.

Typescript چیست و چه ارتباطی با React دارد؟

ارتباط typescript با react

TypeScript یک زبان برنامه‌نویسی است که بر پایه JavaScript ساخته شده است و به برنامه نویسان اجازه می‌دهد که برنامه‌های وب پیچیده را با ساختاری قابل پیگیری و قابل نگهداری بسازند. TypeScript به توسعه‌دهندگان اجازه می‌دهد که از ویژگی‌هایی مانند تایپ‌ها، ارث‌بری، انواع، و مفاهیم دیگر استفاده کنند که در JavaScript موجود نیستند. از type script می‌توان در اکثر فریمورک های وب از جمله React استفاده کرد.
React و TypeScript با هم کار می‌کنند و می‌توانند به عنوان یک ترکیب قدرتمند برای ساخت برنامه‌های وب استفاده شوند. TypeScript به توسعه‌دهندگان اجازه می‌دهد که کامپوننت‌های React را با تایپ‌های دقیق تر بسازند و به راحتی از خطاهای نوشتاری جلوگیری کنند. همچنین، TypeScript به توسعه‌دهندگان اجازه می‌دهد که برنامه‌های وب خود را با ساختاری قابل پیگیری و قابل نگهداری بسازند.
با استفاده از TypeScript در React، برنامه نویسان می‌توانند به راحتی از ویژگی‌هایی مانند تایپ‌ها، ارث‌بری، و مفاهیم دیگر استفاده کنند که در JavaScript موجود نیستند. این کار باعث می‌شود که کد React قابل پیگیری‌تر و قابل نگهداری‌تر باشد و به راحتی قابل توسعه باشد. به علاوه، TypeScript به توسعه‌دهندگان اجازه می‌دهد که به راحتی با تیم‌های بزرگ و پروژه‌های بزرگ کار کنند و به راحتی کد بزرگ را مدیریت کنند.

برای یادگیری React چه پیش نیازهایی لازم است؟

ًReact چیست

یادگیری  React هم مانند یادگیری همه تکنولوژي ها و فریمورک ها و زبانها و … نیازمند یک سری پیش نیاز ها است که باید آن‌ها را یاد بگیریم تا بتوانیم  React را درک کنیم. مواردی که قبل از یادگیری  React باید آن‌ها را بلد باشید عبارتند از:
HTML و CSS: برای ساخت صفحات وب با React، نیاز به دانش کافی در زمینه HTML و CSS دارید.
JavaScript: کتابخانه React بر پایه JavaScript ساخته شده است، بنابراین برای یادگیری React، نیاز به دانش کافی در زمینه JavaScript دارید. باید با مفاهیم مانند توابع، آرایه‌ها، شیء‌ها، متد‌ها، و مفاهیم دیگر آشنا باشید.
ES6: ES6 یا ECMAScript 2015، یک نسخه جدید از JavaScript است که برای یادگیری React بسیار مفید است. برخی از ویژگی‌های ES6 شامل تعریف متغیر با const و let، توابع arrow، و انواع داده‌ای جدید مانند Set و Map هستند که در React به وفور از آن‌ها استفاده می شود.
مفاهیم برنامه‌نویسی وب: برای ساخت برنامه‌های وب با React، باید با مفاهیمی مانند RESTful API، AJAX، و نحوه لود شدن صفحات وب و درخواست های وب و ارتباط با سرور و مفاهیم دیگر برنامه‌نویسی وب آشنا باشید.
NPM یا یکی از package manager های مربوط به node.js:  از آنجا که برای مدیریت کتابخانه‌ها و بسته ها در  React از package manager های node.js مانند npm استفاده می‌شود لازم است که بتوانید با یکی از این package manager ها آشنایی داشته باشید و بتوانید با آن کار کنید.

برای یادگیری React چه ابزارهایی لازم است؟

برای شروع به کار با React ابزارهایی لازم است که در ادامه آن‌ها را آورده ایم. 
کامپیوتر: از آنجا  React برای توسعه فرانت اند استفاده می‌شود و کتابخانه سبکی است نیاز به یک کامپیوتر بسیار قوی با رم و قدرت پردازشی خیلی بالا نیست. البته اگر باشد کار راحت‌تر است ولی می‌توان با استفاده از یک کامپیوتر معمولی شروع به یادگیری و برنامه نویسی با react کرد.
ادیتور کد: برای اینکه برنامه‌های  React را بنویسیم نیاز به یک ویرایشگر کد داریم. حال این ویرایشگر می‌تواند یک ویرایشگر خیلی ساده مثل نوت پد ویندوز باشد یا می‌تواند ویرایشگری قدرتمند مانند vscode باشد. استفاده از ویرایشگر های قوی کار شما را در نوشتن و خطایابی و تست کد راحت‌تر می کند. همچنین از IDE هایی مانند Intellij و Webstorm و … نیز می‌توان برای نوشتن برنامه‌های React استفاده کرد که من شخصاً IDE را بیشتر از ویرایشگر ها می پسندم.
Package manager هایی مانند npm : برای دانلود و نصب بسته ها و کارهایی مانند ساخت پروژه و اجرای آن استفاده می‌شوند که باید بر روی سیستم شما نصب باشد.

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

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

چه زمانی طول می‌کشد تا React را یاد بگیرم؟

پاسخ این سؤال به میزان تجربه قبلی شما و میزان وقت و انرژی که برای یادگیری اختصاص می‌دهید بستگی دارد. اما به طور کلی می‌توان با داشتن پیش نیاز های گفته شده با صرف زمانی بین 2 تا 6 ماه با صرف مطالعه و تمرین روزانه و تمرکز مهارت لازم را برای برنامه نویسی React به دست آورید.

props در React چیست؟

props در React یک مفهوم مهم است که به عنوان خصوصیت یا ویژگی به کامپوننت‌ها منتقل می‌شود. این مقدارها به عنوان ورودی به کامپوننت‌ها داده می‌شود و می‌تواند شامل هر نوع داده‌ای باشد (مانند عدد، رشته، آرایه، آبجکت و ...). 
با استفاده از props، می‌توانیم هر کامپوننت را به شکل دلخواهی که مایلیم تنظیم کنیم، به عنوان مثال در یک کامپوننت Button، می‌توانیم props‌هایی مانند نام دکمه، رنگ، سایز، تصویر و ... در نظر بگیریم و به این صورت با انتقال این props به کامپوننت Button، دکمه مورد نظر را با تنظیمات دلخواه خودمان طراحی کنیم. 
استفاده از props در React باعث می‌شود که تنظیمات لازم را برای یک کامپوننت ارسال کنیم  و در نهایت منجر به افزایش قابلیت تغییرپذیری و استفاده مجدد در کامپوننت‌ها می‌شود. زیرا از یک کامپوننت چندین بار با تنظیمات متفاوت استفاده می کنیم.

در این مقاله سعی کردیم که React را به شما معرفی کنیم و مزایا و دلایل محبوبیت آن را توضیح دهیم. اگر نظری در مورد React دارید می توانید در بخش نظرات آنها را مطرح کنید.

  • آیا با یادگیری react نیاز است که jquery را یاد بگیرم؟

    خیر. jquery یک کتابخانه برای کارهای مختلف است که امروزه با ظهور فریورک های فرانت اند مانند React از آن کمتر استفاده می شود و این فریمورک ها جایگزین jquery شده اند.
  • React چیست؟

    یک کتابخانه open source برای ساخت UI صفحات وب است که توسط facebook نوشته شده است و محبوبیت بسیاری کسب کرده است.

مهدی عادلی فر
مهدی عادلی فر

بنیانگذار توسینسو و برنامه نویس

مهدی عادلی، بنیان گذار TOSINSO. کارشناس ارشد نرم افزار کامپیوتر از دانشگاه صنعتی امیرکبیر و #C و جاوا و اندروید کار می کنم. در زمینه های موبایل و وب و ویندوز فعالیت دارم و به طراحی نرم افزار و اصول مهندسی نرم افزار علاقه مندم.

نظرات