Reactjs , vuejs , angular سه تا کتابخونه جاوا اسکریپتی هستند که امروزه طرفدارانی بسیاری دارند.
هر سه این javascript library ها client side هستند و نیاز به یک وب سرویس دارند تا اطلاعات را fetch کنند.
در این ویدیو به معرفی این سه کتابخونه پرداختم اگر حوصله خوندن این مقاله را ندارین می تونید این فیلم را مشاهده کنید
تو ایران شرکت اسنپ و ایوند از react استفاده می کنند. اگر اشتباه نکنم سایت علی بابا که برای فروش بلیط هواپیما هست و همچنین زرین پال نیز از vuejs استفاده می کنند. در موسسه گزینه دو که خودم اونجا حضور دارم هم پروژهامون را با vuejs داریم توسعه می دیم. حتی اپ موبایلمون هم بر اساس pwa و vuejs هست.
من خودم چند پروژه که به صورت فریلنسری انجام دادم با استفاده از انگولار بوده به عنوان مثال سیستم مدیریت انرژی که واسه آبفا بوده. شرکتهای ایرانی را نمی دونم ولی شرکتهای مثل مایکروسافت ، مکدونالد،ادوبی ،تلگرام هم از انگولار استفاده می کنند
Reactjs توسط فیسبوک توسعه داده شده و تو گیت هاب 140K star داره و 6k ویو خورده
Angular هم توسط گوگل توسعه داده شده و تو گیت هاب 54K star داره و 3 K دیده شده.
Vue js توسط شخصی به نام Evan You توسعه داده شده و تو گیت هاب 153K star داره و 6K بار دیده شده. Evan You قبلا توی تیم انگولار بوده و الان تمام وقت خودش را روی توسعه vue کرده و تو این مدت کامیونیتی خوبی تشکیل داده و محبوبیت خوبی پیدا کرد.
Angular با type script و rxjs (reactive programing ) ادغام شده. در انگولار ما سه فایل مجزا داریم که یکی مربوط به فایلهای html و یکی هم فایل های css و دیگری هم شامل کدهای تایپ اسکریت انگولار هست اما در react کدهای html , css و جاوااسکریپت را در فایلی با پسوند .js یا .jsx می نویسیم . در vue هم مشابه react کد در یک فایل با پسوند .vue نوشته می شند.
یادگیری Vue خیلی راحته و برخلاف اون دوتا ، سینتکس ساده ایی هم داره. مشابه انگولار ، directive داره که در واقع اتریبیوت هایی هستند که به المانهای html اضافه می شوند مثلا v-for برای یک حلقه for هست که مشابه ng-for در انگولار هست
انگولار یک فریم ورک هست و از معماری Mvc پشتیبانی می کند. در انگولار مفاهیمی وجود دارد مثل dependency injection ، ماژول ، سرویس , interceptor که برای پیاده سازی پروژه هایی در scale بزرگ به شما قدرت زیادی میده. اما سرعت و سبکی react و vue را ندارد.. در react و vuejs مفهمومی وجود دارد به نام Virtual Dom که باعث افزایش سرعت این دو کتابخانه شده و سرعت رندر بالاتری را نیز داره.
هر سه یک Cli قوی دارند که البته من خودم زیاد تمایل به استفاده از اون را ندارم و زیاد باش کار نکرد.
کامپوننت های مختلفی برای هر سه این کتابخونه های وجود دارد.
مثل bootstrap – kendo ui – ant design
یکی از مباحثی که در spa همیشه مطرح میشه بحث سئو این سایتها هست هرچند من با آن موافق نیستم و به تجربه دیدم که گوگل این سایتها را هم به خوبی ایندکس می کنه اما مفهومی وجود داره به نام SSR یا server side rendering که میاد قبل اینکه صفحه رندر بشه کدهای html مربوطه ا تولید می کنده و اونا به مرورگر ارسال می کنه. در انگولار برای پیاده سازی ssr از کتابخونه Angular Universal
استفاده می شه . در vue هم کتابخانه Nuxt واسه این کار استفاده می شه.
در react هم Next کتابخونه ایی هست که واسه ssr استفاده می شده
در react برای state manegment از redux استفاده میشه که مشابه اون در vue کتابخونه vuex هست. اما در انگولار با استفاده از سرویس ها rxjs می توان اونا پیاده سازی کد.
Pwa یک چهارچوب واسه اپ موبایل هست که می تونید با استفاده از اون وب اپلیکشن های تحت وب را مانند اپلیکشن های موبایلی روی موبایل اجرا کنید. و یک فایل مانیفست به پروژه اضافه می کند که تنظیمات اپ موبایل مثل آیکون و نام در اونجا تنظیم می شه.
Service worker هم باعث می شه تا اپ شما در حالت آفلاین و بدون اتصال به اینترنت هم کار کند . در واقع اطلاعات را در مرورگر ذخیره می کند
قبلا در اندروید وب اپلیکشن ها به صورت وب ویو باز می شد که کاربر حس خوبی نداشت . اما امروزه با استفاده از trusted web activity وب اپلیکشن ها را می تونید اجرا کنید و کاربر حس کار با یه نرم افزار واقعی را داره . پروژه های vue گزینه دو را با همین تکنولوژی برای اندروید توسعه دادیم. البته اگر دانش برنامه نویسی اندروید را هم داشته باشید میتونید برنامه های بهتری را توسعه بدید.
بازار کار جهانی این سه کتابخانه بر طبق گزارش سایت indeed.com برای سال 2019 - 78 درصد متعلق به react و 21 درصد متعلق به انگولار و یک درصد هم مربوط به برنامه نویسان vue هست
در ایران هم اونچه که در آگهی ها مشاهده کردم بازار react نسبت به بقیه بیشتر و سپس انگولار . اما می توان در این مدت رشد vue را هم مشاهده کرد .به نظرم آینده خوبی را می توان برای vue متصور شد.