رفتن به نوشته‌ها

دسته: React (ری اکت)

React (به فارسی: ری اکت) یک کتابخانه‌ی متن‌باز جاوا اسکریپتی است که برای ساخت رابط‌های کاربری و اجزای صفحات وب مورد استفاده قرار می‌گیرد. به عبارت دقیق‌تر از این کتابخانه برای ساخت نرم‌افزارهای واکنشگرای تک صفحه‌ای (SPA) مورد استفاده قرار می‌گیرد. با استفاده از ری اکت می‌توانید درخواست خود را به سرور ارسال کنید و بدون رفرش کردن صفحه، خروجی را تغییر دهید.
در واقع ری‌ اکت به توسعه‌دهندگان این امکان را می‌دهد که واسط‌های کاربری را به صورت درختی از اجزای کوچکی بنام Component ایجاد کنند. (هر کامپوننت ترکیبی از HTML و جاوا اسکریپت است که تمام منطق موردنیاز برای نمایش قسمت کوچکی از یک واسط کاربری بزرگ‌تر را در خود دارد)
کتابخانه‌ی React در سال 2013 توسط تیم توسعه‌ی فیس‌بوک معرفی و به سرعت به یکی از مهم‌ترین فریم‌ ورک‌های جاوا اسکریپت تبدیل شد به گونه‌ای که در سایت‌های مهمی چون نت‌فلیکس و ایر بی‌‌ان‌بی استفاده شد. در حال حاضر ری اکت و ری اکت نیتیو در صدر محبوب‌ترین پروژه‌های گیت‌هاب هستند.
در ساختار React.js از یک DOM مجازی استفاده می‌شود که سرعت اجرای آن را بسیار بالا می‌برد.
React Native (ری اکت نیتیو) نیز یک کتابخانه‌ی قدرتمند جاوا اسکریپت و یک چارچوب توسعه نرم‌افزاری موبایل است که به کمک آن می‌توان برای سیستم عامل‌های اندروید و IOS، اپلیکیشن ساخت. اینکه اپلیکیشن‌های بزرگی چون فیس‌بوک، اینستاگرام و اسکایپ با استفاده از ری اکت نیتیو تولید شده‌اند، بزرگ‌ترین گواه بر قدرت و انعطاف‌پذیری این فریم ورک است.
ری اکت نیتیو شبیه به ری اکت جی اس است اما بلوک‌های حیاتی آن بجای کامپوننت‌های وب، کامپوننت‌های بومی است.

فصل ضمیمه: آشنایی با useReducer

اگر جلسات را به طور منظم دنبال کرده باشید می دانید که در حال حاضر سه state مختلف داریم که همگی تا حدی به هم مربوط هستند، تمام آن ها در مورد درخواست های HTTP ما هستند. هر زمان که درخواستی را ارسال کنیم (اضافه کردن به پایگاه داده یا حذف آن یا خواندن از آن) userIngredients تغییر می کند. isLoading برای صبر کردن تا دریافت پاسخ ایجاد شده و اگر پاسخ ما با خطا روبرو شود error وارد صحنه می شود. بدین ترتیب می فهمیم که state ما به درخواست های HTTP اختصاص داده شده است و با اینکه از هم مستقل هستند اما در بسیاری از اوقات در یک تابع هر دو را با هم تغییر می دهیم. مانند قسمت catch در removeIngredientHandler: