بررسی کامل React و دلایل استفاده از آن

ریکت اصن چیه ؟؟ اگه توسعه دهنده وب باشی ، میدونی که کار ساخت وبسایت به دو بخش Frontend و Backend تبدیل میشه ، حالا دوستامون که توی بخش Frontend کار میکنند ، با ظاهر سایت کار دارند و سعی دارند اونو به بهترین شکل ممکن پیاده سازی کنند طبیعتا این دوستامون باید متخصص HTML , CSS , JavaScript باشند و این موارد از خودشون بهتر بشناسند ، ولی حتی وقتی اینا عالی بلد باشی ، ممکنه با چالش ها و مشکلات زیادی رو به رو بشی ، اتفاقی که برای خودم افتاد و واقعا دمار از روزگارم در اومد !!!حالا این وسط ، ریکت میگه ، اگه بیایی از من استفاده کنی دیگه خیلی از اون چالش ها و مشکلات نداری ، نیازی نداری یه کد هزار بار بزنی ، نیازی نداری همه چیز از صفر کد بزنی و . . . پس در واقع ریکت ، یه کتابخونست از جنس جاوااسکریپت ، که برای ساخت رابط کاربری یا همون شکل شمایل سایت ازش استفاده میشه و طبق تجربیات من تو کارش حرف نداره !!! این پسر خوشگلمون سال 2011 از دل شرکت بزرگ Facebook بیرون اومد و توی بسیاری از پروژه ها و سایت های بزرگ ازش استفاده میشه با اینکه مدت زمان زیادی از به وجود اومدنش نمیگذره ، ولی خیلی خیلی محبوب شده و از دوستاش ینی Vue و Angular طرفدارای بیشتری داره چرا باید از ریکت استفاده کنم ؟؟1- معماری ماژولار و کامپوننت محور توضیح معماری ماژولار ریکتیه پازل در نظر بگیر که مثلا 5 قسمت داره ، با کنار هم گذاشتن این 5 قسمت شما پازل تکمیل کردی ، حالا توی ریکت هر کدم از این قطعه های پازل بش میگن کامپوننت ، در واقع ساختار یه صفحه وبی که با ریکت طراحی میشه ، مجموعه ای از این کامپوننت هاست مثلا اون عکس بالایی که میبینی ، سمت راستش یه صفحه وبه ، سمت چپش کامپوننت هایی که اون صفحه تشکیل میدن دقیقا مثل پازل ، با کنار هم گذاشتن این کامپوننت ها اون صفحه وب اصلی ساخته میشه به این نوع معماری میگن معماری کامپوننت محور ، استفاده از این روش خیلی مزیت داره که در ادامه بهش اشاره شده ولی یکی از بزرگترین مزیت هایی که داره اینه که اگر مثلا جایی کامپوننت Header کد زنی کردید ، میتونید هر جایی از پروژتون ازش استفاده کنید و دوباره مجبور نیستید همون کدا بزنید . 2- یه بار کد میزنی هزار جا استفاده میکنیبا استفاده از طراحی ماژولار و کامپوننت محور میتونیم هر بخشی که کد میزنیمو در قسمت های مختلف پروژمون یا حتی سایر پروژه های دیگمون استفاده کنیم و این مزیت خیلی خیلی بزرگی چون شما برای سایر قسمت های سایت و سایر پروژه های دیگه ، دوباره چرخ اختراع نمیکنید ، میتونی بدون وجود کوچکترین مشکلی نظیر تداخل کد ها ، به هم ریختگی قالب ، عمل نکردن توابع و سایر موارد دیگه کداتون هر جایی دیگه دوست داشتید اضافه کنید . به مرور زمان ، هر چی جلو تر میری و پروژه های بیشتری برمیداری ، کامپوننت های بیشتری هم داری ، و خیلی سریع تر میتونی اون استایلی که دوست داری کپی کنی و بدون مشکل توی پروژه جدیدت استفاده کنید 3- هر چیزی از صفر کد نمیزنی و هزاران پکیج حرفه ای داره ریپازیتوری Npm برای دانلود پکیج های Reactفرض کن داری فرمی طراحی میکنی که باید به سمت سرور ارسال بشه و پردازش بشه ، این فرم پر از سلکت باکس ها ، ادیتور های متن ، آپلودر ها و سایر موارد دیگست خب بدون شک اگر بخواییم خودمون همه این موارد طراحی کنیم هم زمان بسیار زیادی طول میکشه ، هم ممکنه حرفه ای و ماژولار نشه و نتونیم جاهای دیگه به خوبی ازش استفاده کنیم و خیلی مشکل دیگه این وسط ممکنه پیش بیاد از طرفی اگر هم بیاییم و از کد های آماده استفاده کنیم مشکلات فرآوانی داره ، عدم سازگاری ، عدم اعتبار مرجع ، کیفیت پایین کد ، فقط بخش کوچیکی از این موارد هستن برای حل این مشکلات ، ما میاییم از پکیج های ریکت استفاده میکنیم ، تقریبا برای هر کاری که بخوایید انجام بدید ، پکیج هایی موجوده که توسط افراد و تیم های مختلف کد زنی شده اند و میتونید فقط با یک دستور اونا نصب کنید و ازشون استفاده کنید این پکیج ها معمولا جامع و کامل هستند و همه نیاز هات توی اون زمینه ای که میخوایی برآورده میکنه ، همچنین هر جاییشو خواستی میتونی به راحتی ادیت کنی و شخصی سازیش کنی 4- حجم کدی که میزنی خیلی کم میشه خیلی واضحه با توجه به ساختار ماژولار ، وجود پکیج های بینظیر و حرفه ای و همچنین قابلیت Vertical DOM حجم کدهایی که میزنی خیلی خیلی کم میشه و همین عامل باعث میشه بتونی راحت تر پروژت مدیریت کنی ، خطا ها راحت تر پیدا کنی و کارهات سریع تر انجام بدی 5- میتونی خیلی راحت کدات تست کنی کتابخانه react در زمینه تست پذیری بسیار عملکرد مناسبی داشته و فرد استفاده کنند این امکان را خواهد داشت تا کامپوننت ها و توابع خود را به آسانی با پارامتر ها و خروجی های مورد نظرش چک نماید و در بحث دقت و زمان صرفه جویی بسیار مناسبی را ایجاد کند. همچنین عملکرد کتابخانه ری اکت در مقایسه با انواع مختلف دیگر کتابخانه‌ها و فریم ورک هایی که در جاوا اسکریپت موجود هستند بسیار عملکرد بهتری را ارائه می نماید.7- سرعت بسیار زیاد و دقیقا مثل اپلکیشن ها وقتی کاربرات با اپلکیشن تحت وبی که با ریکت درست کردی کار کنن ، دیگه زمانی برای لود صفحات منتظر نمیمونند ، همه چیز خیلی سریع و دقیقا شبیه اپلکیشن های نیتیوی و یا برنامه های ویندوزی 8- ساخت وب اپلکیشن ها اکثر وب اپلکیشن ها با استفاده از React پیاده سازی میشوند ، ترکیب React و PWA برای ساخت وب اپلکیشن های تک صفحه ای حرفه ای ، غوغا میکنه9- ساخت اپلکیشن های اندروید و آی او اس به شکل موازی فرض کن پروژه ای گرفتی که کارفرما میخواد علاوه بر وبسایت ، وب اپ و اپ های موبایل برای اندروید و آی او اس هم ساخته بشه ، اگر بخوایی عادی کد بزنی باید به صورت متوالی سه بار به ترتیب وبسایت و وب اپ ، اندروید و آی او اس کد بزنی . بنده به شخصه عده محدودی میشناسم که توانایی پیاده سازی سه پلتفرم داشته باشند ، معمولا یا وب کار میکنند یا اندروید یا آی او اس پس اگر همچین پروژه به پستتون خورد به احتمال زیاد از دستش میدید .مورد بعدی این که وقتی که شما برای طراحی سه پلتفرم صرف میکنید بسیار زیاده و ممکنه به قیمت پیشنهادی نصرفه در این صورت هم پروژه از دست خواهید داد . در صورتی که اگر بیاید از React Native استفاده کنید در واقع هر سه پلتفرم به شکل موازی پیش میروند ، پس شما اون دو مشکل بالا نخواهید داشت 10 - یادگیریش آسونه و داکیومنت بینظیری داره این گزینه به عنوان یک ویژگی مثبت برای کتابخانه ری اکت به حساب می‌آید چرا که کتابخانه و فریم ورک های دیگری مانند Angular و Vue پیچیده بوده و یادگیری آنها نیز کاری کمی سخته اینم بگم ، درسته یادگیری React آسونه ولی حتما حتما باید پیشنیازهاشو کامل یادبگیری و درک کنی مخصوصا جاوااسکریپت خیلی عمیق و مفهومی باید یادبگیری در غیر این صورت مطمعن باش React خوب یاد نمیگیری و درک نمیکنی پیش نیاز یادگیری ریکت چیه ؟ HtmlCSSJavaScriptآینده ریکت ؟ دنیای برنامه نویسی داره به سمت سادگی میره ، هم برای توسعه دهنده ها و هم برای استفاده کننده ها ، اگر تکنولوژی باشه که بتونه بمون کمک کنه ، با یکبار کد زنی ، برنامه های اندروید و آی او اس ، سایت ، وب اپلکیشن با قدرت خوب بسازیم ، به شدت استقبال میشه ، همین طور که تا الان شده ، هم از طرف مردم ، هم از طرف مارکت های بزرگ ، بدون شک با برطرف کردن برخی مشکلات جزیی ، در آینده نزدیک دنیای برنامه نویسی ، استفاده گسترده از این نوع تکنولوژی ها که گل سرسبدشون ریکته ، روی میاره !!!چه پروژه هایی که با React پیاده سازی شدن ؟ DropBoxInstagram PayPalCloudflareAirbnbNetflix