React در سال 2013 میلادی ساخته و روانه بازار شد و از آن زمان به بعد به یکی از محبوبترین چهارچوبهای جاوااسکریپت تبدیل شده است. این چهارچوب شگفتانگیز جاوااسکریپتی به طراحان اجازه میدهد تا کدهایی انعطافپذیر و خوانا را تعریف کنند. در مقابل DOM نیز تنها بخشهایی از یک صفحه که تغییر پیدا کردهاند را به جای کل یک صفحه پردازش میکند.
چهارچوبی که تا به امروز مشکلات بسیاری از برنامهنویسان را حل کرده است. چندی بعد React Native نیز از سوی فیسبوک ارائه شد. چهارچوبی که به توسعهدهندگان برنامههای موبایل اجازه میدهد از طریق آن برنامههای ترکیبی که در حقیقت بومی هستند را طراحی کند. React در عمل نشان داده است که یک کتابخانه سودمند و بدون دردسر است و یکی از مهمترین مهارتهایی است که یک توسعهدهنده امروزی باید آنرا در اختیار داشته باشد. اما پرسش مهمی که مطرح است این است که اساسا React و React Native چه قابلیتها و مزایایی دارند؟
مزایای کار با React
1.Virtual DOM
DOM مجازی تغییراتی که در یک صفحه به وجود آمده را پیش از آنکه صفحه پردازش شود در حافظه سیستمی ذخیرهسازی میکند. این رویکرد یکی از برجستهترین وعدههای بود که از سوی react مطرح شد، هر چند امروزه DOM مجازی به شکلهای منفرد میتواند پیادهسازی شده و به مجموعه کدها اضافه شود. در حقیقت DOM مجازی در اغلب کتابخانههای جاوااسکریپت پیادهسازی شده است.
2. پردازش سمت سرور
پردازش سمت سرور برای بهکارگیری در React به وجود آمد که فرآیند دستکاری، تغییر و پردازش DOM و کدها را سادهتر میکند.
3. توصیف و تشریح خطاها
تشریح خطا مهمترین قابلیتی است که هر برنامهنویسی به آن نیاز دارد. اگر یک توسعهدهنده تازهکار در اولین گام با React به مشکلی برخورد کند و خطایی را مشاهده کند، سامانه به سرعت به او اعلام میدارد که چه اشتباهی رخ داده، خطا در چه خطی به وجود آمده و چگونه میتوان این خطا را ویرایش کرد.
4. سیستم رویدادهای سفارشی
React به توسعهدهندگان اجازه میدهد تا رخدادهای سفارشی خاص خود را ایجاد کرده و در ادامه با مجموعه دادهها (Data Store) آنرا بهروزرسانی کنند. کتابخانههای متعددی وجود دارد که به توسعهدهندگان کمک میکند به شکل سادهای کدهای بازگشتی را به یک مدل برنامهنویسی تطبیقی منتقل کنند.
5. برنامهنویسی اعلانی (Declarative)
React واسط برنامهنویسی (API) دستوری را با مدل اعلانی جایگزین کرده است. رویکردی که در آن رابط تعاملی کاربری به شکل سادهتری ایجاد میشود. از طریق بهکارگیری نماها (Views) برای حالتهای مختلف، React به شکل درستی مولفههایی که برای تغییر دادهها به آنها نیاز است را بهروزرسانی کرده و پردازش میکند. در این حالت کدها به شکل قابل فهمتر و خواناتری نوشته میشوند.
6. کدنویسی قابل پیشبینیتر
React به توسعهدهندگان اجازه میدهد تا هر فایل جاوااسکریپتی را همراه با مولفه React آن باز کرده و به شکل روشنی حالتهای ممکن آن مولفه را درک کنند. بهطوری که تنها با نگاه کردن از این موضوع مطلع شوند که رفتار فایل چگونه بوده و قرار است چه کاری را انجام دهد.
React Native
یک محیط بومی به مراتب قویتر و انعطافپذیرتر از محیط مرورگرها است. هر پلتفرمی به مجموعه ابزارهای خاص خود، مجموعه مفاهیم انتزاعی خاص خود و مجموعه کدهای خاص خود نیاز دارد. خاص بودن برای یک پلتفرم یک مزیت بزرگ است؛ اما در مقابل باعث میشود تا کدها و مفاهیم قابلیت استفاده مجدد را از دست بدهند. درست است که افزوده شدن دادههای بیشتر به برنامهها به افراد قدرت بیشتری میدهد، اما در بعضی موارد خرابی کل یک برنامه یا سامانه را نیز به همراه میآورد. برای پاسخگویی به چنین مشکلات و نیازهایی فیسبوک در سال 2015 میلادی React Native را برای پاسخگویی به حل مشکل داشتن برنامههای محلی قابل مدیریت عرضه کرد. این چهارچوب به عنوان پلی میان برنامهنویسی و پلتفرمهای میزبان عمل میکند. با توجه به آنکه React قادر به خواندن و درک منطق کدها پیش از پردازش آنها است، در نتیجه اضافه کردن یک لایه دیگر برای تفسیر زبان و پردازش آن برای پلتفرمهای محبوب به این چهارچوب اضافه شد. React Native به توسعهدهندگان اجازه میدهد تا کدهای خود را به زبان جاوااسکریپت بنویسند، اما کدهای پردازش شده برای سیستمعاملهای اندروید و iOS را دریافت کنند، رویکردی که باعث شده است برنامهها به شکل چشمگیری حالت بومی بودن به خود بگیرند. این تکنیک شگفتانگیز باعث شده است در عمل توسعهدهندگان در پیادهسازی حالتهای مختلف با محدودیتهای جدی روبرو نشوند. رویکردی که مزایای متعددی به همراه داشته که در ادامه با برخی از مزایا آشنا میشویم.
1.توانایی انجام موازی کارها
فیسبوک چهارچوبی به نام Async که در اصل یک کیت برنامهنویسی است را ایجاد کرده که به توسعهدهندگان اجازه میدهد تا پردازشهای مختلف را از ریسمان اصلی برنامه (main thread) خارج کنند تا پویانماییها روانتر شوند. شما میتوانید همین کار را از طریق Webworkerها هم انجام دهید اما با محدودیتهای زیادی روبرو هستید، به واسطه آنکه WerbWorkerها فرآیند دیکد کردن تصاویر را به شکل پیچیدهای انجام میدهند و همچنین فاقد قابلیت سنجش متن بوده و طراحی لایهها نیز در آنها به سختی انجام میشود.
2. حالت اعلانی (Declarative style)
حالت کدنویسی به سبک اعلانی، یکی از مهمترین دلایل محبوبیت React و React Native بوده است، به واسطه آنکه به توسعهدهندگان اجازه میدهد کدهای خوانا و انعطافپذیری که دستکاری نمیشوند را بنویسند. کدهایی که رابطهای کاربری شگفتانگیزی را تولید کرده که تنها با یک نگاه ساده به آنها متوجه عملکرد آنها میشوید.
3. دسترسی به امکانات بومی
React به شما اجازه میدهد به قابلیتها و مولفههای اختصاصی پلتفرمها همچون ویجتهای بومی دسترسی داشته باشید. بدون این دسترسی محلی اگر تلاش کنید تا ویجتهای بومی را از طریق HTML، CSS و جاوااسکریپت پیادهسازی مجدد کنید، نتیجه مطلوب و دلخواه خود را دریافت نخواهید کرد.
4. بارگذاری سریعتر
React Native گزینههایی همچون Hot Reloading و Live Reloading را در اختیارتان قرار میدهد. این گزینهها به شما اجازه میدهند نحوه بارگذاری مجدد برنامه کاربردی خود به منظور مشاهده تغییرات رخ داده در آن را مشاهده کنید. همچنین چرخه بازخوردها را کم کرده و به توسعهدهندگان اجازه میدهد به شکل سادهتری بهروزرسانیهای OTA را با قابلیت پردازش لحظهای ارائه کنند.
5. چندسکویی
React Native محدود به یک پلتفرم خاص نیست، بلکه چهارچوبی است که قادر است برای کدنویسی، طراحی و انتشار برنامهها برای پلتفرمهای مختلف همچون اندروید و iOS مورد استفاده قرار گیرد. رویکردی که به شکل قابل توجهی زمان کدنویسی و تنظیم منابع حیاتی برای هر پلتفرم را کم میکند.
6. خوانایی بیشتر و سادهتر
برنامهنویسی اعلانی پارادیومی است که باعث سادهتر شدن الگوها و کدنویسی میشود. رویکردی که خواندن کدها برای توسعهدهنده و سامانه را سادهتر میکند. برنامهنویس به راحتی میتواند کد را مشاهده کرده و خروجی آنرا درک کند. به جای آنکه نیاز داشته باشد تا کدها را پردازش کرده تا عملکرد آنها را درک کند.
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟