React JS چیست؟ – از کاربرد تا یادگیری به زبان ساده
در دنیای امروز، اپلیکیشنهای موبایل و وب بسیار مهم هستند. ما از این اپلیکیشنها برای انجام کارهای روزانه زیادی مانند تاکسی گرفتن، سفارش غذا، انجام امور بانکی و غیره استفاده میکنیم. این اپلیکیشنها به لطف ابزارهای ویژه به خوبی کار میکنند که یکی از مهمترین این ابزارهای توسعه وب React است. در این مطلب از «مجله فرادرس» در کنار معرفی کتابخانه معروف جاوا اسکریپت «React JS»، کاربردها، تاریخچه، مزایا و معایب و غیره این کتابخانه محبوب را معرفی خواهیم کرد. در پایان مطالعه این مطلب کاربر بینش بسیار مناسبی از اینکه React JS چیست و اینکه چه رسالتی در دنیای توسعه وب دارد، به دست خواهد آورد. در کنار آشنایی با کتابخانه React JS، در پایان فریمورک «React Native» و بسته «React Router» نیز معرفی خواهند شد.
React JS چیست؟
React.js در اصل نوعی کتابخانه «منبع آزاد» (اوپن سورس | Open Source) جاوا اسکریپت محسوب میشود که در ابتدا به وسیله کمپانی «متا (فیسبوک قبلی)» توسعه یافت. هدف اصلی این کتابخانه جاوا اسکریپت تسریع در ایجاد رابطهای کاربری تعاملی و برنامههای کاربردی وب است. استفاده از این کتابخانه به طور قابلتوجهی میزان کد مورد نیاز را در مقایسه با رویکردهای سنتی جاوا اسکریپت کاهش میدهد. در هسته کتابخانه React مفهومی از ساخت برنامههای کاربردی به وسیله اجزای قابل استفاده مجدد یا به اصطلاح «کامپوننت» (Component) وجود دارد که نقطه عطفی برای توسعه وب محسوب میشود. این کامپوننتها عناصر متمایز رابط نهایی را نشان میدهند که وقتی در کنار هم قرار بگیرند، کل رابط کاربری برنامه را شکل خواهند داد.
به عنوان نوعی ابزاری حیاتی در ساخت وب اپلیکیشنها، ریکت در مدیریت لایه «View» به کار گرفته میشود، دقیقاً مانند V در الگوی مدل (MVC) یا همان مدل «مدل - نما - کنترلر» (Model View Controler). در واقع کار اصلی ری اکت، تقسیم اجزای سازنده برنامهها به کامپوننت است تا رندر بهتری انجام شود. React JS با ترکیب دو ویژگی مهم جاوا اسکریپت یعنی سرعت و کارایی با رویکردی بهینه برای دستکاری «Document Object Model (DOM)»، به توسعهدهندگان این امکان را داده است تا برنامههای وب بسیار پویا، واکنشگرا و سریع ایجاد کنند.
مروری بر تاریخچه React JS
در سال ۱۳۸۹ (2011 میلادی)، شرکت فیسبوک با چالشی غیرمعمول برخورد کرد. نیاز به بهبود پایگاه کاربری حجیم با رابط کاربری پویا، غنیتر و با پاسخدهی بهتر ماهیت اصلی این چالش بود. برای دستیابی به این هدف و حل چاش پیش آمده، شخصی به نام «جردن واک» (Jordan Walke) که به عنوان مهندس نرمافزار در فیسبوک کار میکرد، در تلاش بود تا راهی برای توسعه وب با رویکردی سادهتر به ارمغان بیاورد. نتیجه تلاشهای وی، کتابخانهای به نام «ری اکت جی اس» بود؛ این کتابخانه به منظور سادهتر کردن فرآیند توسعه با معرفی نوعی رویکرد ساختاریافته برای ایجاد رابطهای کاربری تعاملی با اجزای قابل استفاده مجدد طراحی شده بود.
فیسبوک، با درک نیازهای جامعه توسعهدهندگان جاوا اسکریپت، React.js را به صورت منبع آزاد منتشر کرد. ویژگیهای نوآورانه و رویکرد کارآمد این کتابخانه باعث شد که در اکوسیستم جاوا اسکریپت به سرعت مورد استفاده قرار گیرد و در مدت زمان کمی در میان توسعهدهندگانی که به دنبال ایجاد برنامههای وب پویا و با کارایی بالا بودند، محبوبیت پیدا کند.
کاربرد React JS چیست؟
در بخش قبل در رابطه با React JS و تاریخچه آن سخن به میان آمد اما کاربرد React JS چیست و برای چه اهدافی از آن استفاده میشود؟ React JS در اصل نوعی رویکرد متمایز به الگوهای بارگذاری سنتی صفحه وب ارائه داده است. با استفاده از این کتابخانه محبوب بهجای بارگذاری مجدد صفحات در دستگاه مشتری (مرورگر وب یا دستگاه کاربر) و سرور برای هر درخواست صفحه جدید، React JS ایجاد «برنامههای تکصفحهای» (SPA) را عملی و در عین حال ساده کرده است. این یعنی که تنها یک سند HTML در ابتدا بارگذاری شده و بهروزرسانیهای بعدی به وسیله جاوا اسکریپت صورت خواهد گرفت. همچنین با اتخاذ مسیریابی سمت کلاینت به وسیله کتابخانه React JS، این ابزار به طور مؤثر بخشهای خاصی از صفحه وب را بدون ایجاد بارگیری مجدد کامل صفحه بهروز میکند که این ویژگی از مهمترین کاربردهای React JS به حساب میآید. چنین رویکردی به طور قابلتوجهی تجربه کاربر را بهبود خواهد بخشید. این ویژگی بهویژه برای وبسایتهای مبتنی بر داده که در آن بارگذاری مجدد اضافی صفحات به دفعات زیادی اتفاق میافتد بسیار حیاتی است.
هسته عملیات کتابخانه ریکت جی اس، «DOM مجازی» (Virtual Dom) آن است که در واقع این مولفه نوعی کپی از DOM واقعی آن بوده که ساختار وبسایت را منعکس میکند. زمانی که تغییراتی در وضعیت دادهها ایجاد شود، کتابخانه ریکت جی اس، DOM مجازی را متناسب با آن بهروزرسانی کرده و DOM واقعی را تنها با تغییرات لازم بهطور مؤثر اصلاح میکند. در نتیجه این عملیات، کامپوننتها و رابطهای کاربری React بدون نیاز به بارگذاری مجدد کل صفحه، به سرعت به بهروزرسانیها پاسخ خواهند داد که منجر به تجربه کاربری روانتر و پویاتر میشود.
نحوه استفاده از React
همانطور که در توضیحات بالا بیان شد، ریکت جی اس نوعی کتابخانه جاوا اسکریپت انعطافپذیر و قدرتمند محسوب میشود که برای ساخت رابطهای کاربری مورد استفاده قرار میگیرد. برخلاف برخی از فریمورکها و کتابخانههای دیگر جاوا اسکریپت، مانند «Angular»، ریکت جی اس به توسعهدهندگان این امکان را میدهد که قراردادهای کد و سازماندهی فایل خود را انتخاب و سفارشی کنند. این ویژگی مهم React JS به کاربران توسعهدهنده این امکان را خواهد داد تا آن را با نیازهای مختلف پروژه تطبیق دهند و از منابع به صورت مقیاسبندی شده استفاده کنند.
برای افزودن تعامل به بخش خاصی از برنامه وب موجود با استفاده از این کتابخانه، میتوان React را با استفاده از نوعی «شبکه تحویل محتوا» (CDN) به وبسایت یا وب اپلیکیشن افزود. برای رسیدن به این هدف باید سه مرحله زیر دنبال شوند:
١. اضافه کردن اسکریپت های CDN لازم به فایل HTML وب سایت
این اسکریپتها «React» و «React DOM» را از به وسیله سرویس CDN در برنامه بارگیری میکنند. در زیر مثالی از چنین اسکریپتی آورده شده است:
1<!-- The first link is for the core React library API -->
2<script src="https://unpkg.com/react@17/umd/react.development.js" crossorigin></script>
3<!-- The second link is for React DOM, required for rendering to the DOM -->
4<script src="https://unpkg.com/react-dom@17/umd/react-dom.development.js" crossorigin></script>
5<!-- The third link is for Babel, needed to compile our React code for compatibility -->
6<script src='https://unpkg.com/babel-standalone@6.26.0/babel.js'></script>
7<!-- Load the React component file -->
8<script type="text/babel" src="like_widget.js"></script>
٢. ایجاد div در فایل HTML برای مشخص کردن محل رندر کامپوننت React
برای هدف نام برده باید نوعی شناسه منحصربهفرد به divاختصاص داده شود که در کد جاوا اسکریپت برای مکانیابی مورد استفاده قرار میگیرد. مانند مثال زیر:
1<!-- ... Your existing HTML markup ... -->
2<div id="like_widget_container"></div>
3<!-- ... Your existing HTML markup ... -->
٣. ایجاد فایل با نام فرضی like_widget.js
در این مرحله فایلی فرضی به نام like_widget.jsباید ایجاد شود که این فایل حاوی کدهای زیر است:
1// Custom React component function that returns JSX syntax
2const ActualWidget = () => <h1>Hello World</h1>;
3
4// Select the container
5const container = document.getElementById("like_widget_container");
6
7// Render the component to the DOM
8ReactDOM.render(<ActualWidget />, container);
پس از اجرای برنامه، Hello Worldدر مرورگر در مکان مشخص شده مشاهده خواهد شد.
ممکن است متوجه سینتکس «JSX» در تابع ActualWidgetشده باشید. JSX نوعی نحو یا سینتکس جاوا اسکریپت «XML» است که به کاربر امکان میدهد HTML و جاوا اسکریپت را به طور یکپارچه ترکیب کند. JSX که به وسیله فیسبوک توسعه داده شده است، عملکرد HTML را با جاسازی مستقیم آن در کد جاوا اسکریپت گسترش میدهد.
دلایل استفاده از React JS چیست؟
دلیل استفاده از React JS چیست و چرا این کتابخانه آنقدر محبوب است؟ React نوعی کتابخانه توسعه سمت فرانتاند بسیار محبوب محسوب میشود زیرا ایجاد برنامههای وب پویا و تعاملی را آسانتر میکند. این کتابخانه همچنین سریع، قابل استفاده و یادگیری آن آسان است. React میتواند برای توسعه برنامههای وب و موبایل استفاده شود و ابزارهای اختصاصی برای اشکالزدایی آسان دارد اما دلایل محبوبیت React JS چیست و چه چیزی آن را از رقبای خود متمایز میکند؟ در ادامه مهمترین دلایل محبوبیت این کتابخانه آمده است:
- ایجاد آسان برنامههای پویا: React به دلیل استفاده از مؤلفهها، ایجاد برنامههای وب پویا را آسانتر میکند. کامپوننتها مانند اجزای سازنده مستقلی هستند که میتوان از آنها در سراسر برنامه استفاده مجدد کرد. این باعث میشود کد سازماندهی شده باشد و نگهداری آن آسانتر شود.
- عملکرد بهبود یافته: React از DOM مجازی برای بهبود عملکرد استفاده میکند. DOM مجازی نوعی نمایش سبک از DOM واقعی است که ساختار صفحه وب را شکل میدهد. هنگامی که تغییراتی در برنامه ایجاد میشود، React فقط بخشهایی از DOM واقعی را که تغییر کردهاند بهروز میکند. این ویژگی باعث میشود برنامه سریعتر و پاسخگوتر باشد.
- اجزای قابل استفاده مجدد: همانطور که در بالا ذکر شد، React از کامپوننتها استفاده میکند. کامپوننتها را میتوان در سراسر برنامه مورد استفاده مجدد قرار داد که باعث صرفهجویی در وقت و تلاش برنامه نویس میشود. کاربر همچنین میتواند کتابخانههایی از اجزای قابل استفاده مجدد ایجاد کند که میتواند در چندین پروژه از آنها استفاده کرد.
- جریان دادههای یک طرفه: React از جریان داده یک طرفه پیروی میکند. این بدان معنی است که دادهها در یک جهت به وسیله برنامه جریان مییابد. یعنی از مؤلفههای والد به مؤلفههای فرزند. این باعث میشود تا اشکالزدایی برنامه و ردیابی خطاها آسانتر شود.
- یادگیری آسان: یادگیری React نسبتاً آسان است، به خصوص اگر کاربر قبلاً با HTML و جاوا اسکریپت آشنایی داشته باشد. منابع زیادی به صورت آنلاین برای کمک به یادگیری و شروع کار با React در اینترنت وجود دارد.
- قابل استفاده برای برنامههای وب و موبایل: از React میتوان برای توسعه برنامههای وب و موبایل استفاده کرد. در این میان فریمورکی به نام «React Native» وجود دارد که به کاربر امکان میدهد با استفاده از React برنامههای موبایلی بومی بسازد.
- ابزارهای اختصاصی برای اشکالزدایی آسان: تعدادی ابزار برای کتابخانه React JS در دسترس هستند که به کاربر در رفع اشکال برنامههای React کمک میکنند. یکی از ابزارهای محبوب، افزونه «React Developer Tools» کروم است.
به طور کلی، React نوعی ابزار توسعه وب فرانتاند قدرتمند و همهکاره است که چندین مزیت را ارائه میدهد. این کتابخانه انتخابی خوب برای توسعه برنامههای کاربردی وب و موبایل است.
کلید در React JS چیست؟
در React، زمانی که کاربر بخواهد چیزهایی مانند فهرستی از عناصر را ایجاد کند، باید از چیزی به نام «کلیدها» بهره ببرد. کلیدهای مانند برچسبهای منحصربهفرد برای هر عنصر در فهرست عناصر هستند. این کلیدها به React کمک میکنند تا وقتی فهرست بهروزرسانی میشود، مواردی که تغییر، حذف یا اضافه شدهاند را پیگیری کند. آنها مانند برچسبهایی هستند که React از آنها برای درک تفاوتهای موجود در فهرست استفاده میکند. بنابراین، کلیدها مانند برچسبهای کوچکی بوده که مطمئن میشوند React میتواند بفهمد که کدام موارد در لیست تغییر کردهاند یا جدید هستند. این کلیدها به React کمک میکند تا فهرست یا لیستها را به طور کارآمدتر مدیریت کند.
مزایای React JS چیست؟
از مهمترین مزایای کتابخانه ری اکت جی اس میتوان به موارد زیر اشاره کرد:
- عملکرد سریعتر: React از DOM مجازی استفاده میکند که نمایش سبکی از DOM واقعی است. هنگامی که تغییراتی در برنامه ایجاد شود، React فقط بخشهایی از DOM واقعی را که تغییر کردهاند بهروز میکند. این باعث میشود برنامه سریعتر و پاسخگوتر باشد.
- قابلیت نگهداری بهبود یافته: معماری مبتنی بر کامپوننت React نگهداری و مقیاسبندی برنامههای کاربردی بزرگ را آسانتر میکند. کامپوننتها واحدهایی از کد هستند که میتوانند مجدداً در سراسر برنامه استفاده شوند.
- مناسب برای «سئو» (Seo): اپلیکیشنهای React سئو پسند هستند، به این معنی که میتوانند به راحتی به وسیله موتورهای جستجو ایندکس شوند.
- پشتیبانی موبایل: React میتواند برای توسعه برنامههای کاربردی وب و موبایل استفاده شود. برای این منظور فریمورکی به نام React Native وجود دارد که به کاربر امکان میدهد با استفاده از React برنامههای موبایلی بومی بسازید.
- جامعه بزرگ: React دارای جامعه بزرگ و فعال از توسعهدهندگان است. این یعنی که منابع زیادی برای کمک به یادگیری و استفاده از React وجود دارد.
در کل مزایای React را میتوان در موارد زیر خلاص کرد:
- React برنامههای ساختهشده را سریعتر و پاسخگوتر میکند.
- React نگهداری و مقیاسبندی برنامههای بزرگ را آسانتر خواهد کرد.
- اپلیکیشن های React میتوانند به راحتی توسط موتورهای جستجو ایندکس شوند.
- React میتواند برای توسعه برنامههای کاربردی وب و موبایل استفاده شود
- React دارای جامعهای بزرگ و فعال از توسعهدهندگان است.