جایگزین‌های مناسب برای React، Angular و Vue

گردآوری و تالیف : ارسطو عباسی
تاریخ انتشار : 02 مهر 1397
دسته بندی ها : جاوا اسکریپت

همه توسعه‌دهندگان این را می‌دانند که اختراع چرخ از ابتدا کاری احمقانه است. تنها کاری که باید بکنید این است که وارد یک مخزن متن باز در گیت‌هاب (و یا دیگر وبسایت‌ها) شوید و پروژه را برای خودتان دریافت کنید. بعد از آن تا زمانی که به صورت کامل برای‌تان قابلیت شخصی‌سازی دارد آن‌ را شخصی‌سازی کنید. هیچ نیازی نیست که کارهای دیگران را برای خودتان تکرار کنید.

اما پیدا کردن چنین پروژه‌ای امروزه تا حدی کار سختی است. دنیای فریمورک‌های وب دنیای بسیار فعالی است و پروژه‌های متن باز بسیاری در این دنیا وجود دارند. به همین دلیل شروع کردن با یک مورد از آن‌ها کار بسیار دشواری خواهد بود. 

حال در دنیای فریمورک‌های جاوااسکریپتی وب ما همواره نام سه مورد را می‌شنویم. ری‌اکت، انگولار و ویو. اما خب قرار نیست بگوییم که این سه مورد بهترین موارد هستند. در حقیقت بهترین وجود ندارد، شما باید براساس نیازهای‌تان و پروژه‌ای که طراحی می‌کنید تصمیم بگیرید. 

در کنار این سه فریمورک، فریمورک‌های بسیار دیگری نیز وجود دارند که از نظر عددی، ساده‌تر، سریع‌تر و شاید در برخی مواقع پر کاربردتر باشند. در این مطلب قصد داریم به شما ۱۵ جایگزین مناسب برای این سه فریمورک را معرفی کنیم.

Petit DOM

اگر از ایده Virtual DOM خوشتان می‌آيد اما تمام قید و شرط‌هایی را که فریمورک‌های بزرگی مانند ری‌اکت برای‌تان فراهم می‌کند را نمی‌خواهید، بنابراین Petit DOM می‌تواند انتخاب خوبی برای‌تان باشد. با استفاده از این کتابخانه شما مقداری کد دریافت می‌کنید که به شما اجازه ایجاد تغییرات در مجموعه تگ‌های Virtual را می‌دهد. بعد از آن نیز می‌توانید تمام تغییرات را به دنیای DOM واقعی ببرید. هر چیز دیگری راجع به ساختار کامپوننت‌ها و بحث رندرینگ به خود شما مربوط می‌شود. خواه که کامپوننت‌های‌تان ساده باشند و یا اینکه سلسله رندرینگ پیچیده‌ای را بطلبند در نهایت این ابزار می‌تواند به شما کمک بکند. می‌توانید این ابزار را به عنوان یک پایه قدرتمند برای بهره‌گیری از قابلیت Virtaul DOM در نظر بگیرید.

Surplus

استفاده از قابلیت Virtual DOM ممکن است برای همه در دسترس نباشد. Virtual DOM معمولا فضای زیادی را می‌طلبد بنابراین اگر پیاده‌سازی و تغییرات شما بسیار پیچیده نیست، شاید بهتر باشد ه به سراغ همان DOM اصلی بروید. کتابخانه Surplus دقیقا چنین کاری را برای‌تان انجام می‌دهد. روند کار کردن با این ابزار ساده است. شما باید کدهای‌تان را با استفاده از JSX بنویسید و بعد از آن،‌ کتابخانه تمام آن‌ها را به کدهایی که DOM واقعی را پیاده‌سازی می‌کنند، تبدیل می‌کند. اگر به قسمت معرفی این کتابخانه مراجعه کنید مشاهده خواهید کرد که به حذف Middleman اشاره کرده است و همچنین گفته که هیچ لایه اضافی در کار نخواهد بود. منظور همان است که همه چیز در حالت DOM اصلی یا اصطلاحا pure خواهد بود. Surplus ابزار ساده‌ای برای پیاده‌سازی DOM ساده است. 

RE:DOM

گزینه‌ای دیگر برای افرادی که نمی‌خواهند از Virtual DOM استفاده کنند، کتابخانه‌ای کوچک (2KB) به نام RE:DOM است. RE:DOM شامل قابلیت‌هایی است که به شما اجازه می‌دهد تا تنها با چند فراخوانی ساده جاوااسکریپت تگ‌ها و کامپوننت‌های‌تان را ایجاد کنید. سینتکس این کتابخانه بسیار نزدیک به CSS است. بنابراین تنها از طریق IDها و Classها می‌توانید کارهای‌تان را جلو ببرید. 

Mithril

تمام جایگزین‌های ما کوچک و مینیمال نیستند. Mithril فریمورکی است که آن را midsized معرفی می‌کنند. با این حال اندازه این فریمورک تنها ۸کیلوبایت است. تقریبا می‌شود این فریمورک را به عنوان یک جایگزین همه جانبه برای ری‌اکت، انگولار و ویو در نظر گرفت. Mithril به شما علاوه بر دسترسی کامل به Virtual DOM ابزارهای دیگری را نیز در اختیارتان قرار می‌دهد که از جمله آن‌ها می‌شود به روتینگ و فراخوانی‌های XMLHttpRequest اشاره کرد. در واقع هدف توسعه‌دهندگان این کتابخانه، استانداردسازی کردن آن بوده است.البته تنها این ابزارها برای چنین کاری کافی نیست. به همین دلیل آن‌ها موارد دیگری را نیز به کدهای‌شان اضافه کردند.

Bobril

اگر که دوست دارید تا از Virtual DOM و stateful componentها ری‌اکت استفاده کنید و برنامه‌های‌تان را در تایپ‌اسکریپت بنویسید Bobril می‌تواند به شما کمک کند. اما اگر دوست دارید که کتابخانه سازگارتر با انگولار باشد می‌توانید از ngBobril استفاده کنید. در برخی از بنچمارک‌ها این فریمورک بسیار سریع‌تر از ری‌اکت و انگولار عمل کرده است. همچنین در خانواده این کتابخانه‌ها یک کتابخانه دیگر به نام BobX نیز وجود دارد که به شما در ایجاد تغییرات در CSS و مدیریت بهتر لایه State به شما کمک می‌کند.

Marko

Marko فریمورکی سریع و روان است که توسط eBay توسعه داده شده و به صورت متن باز ارائه شده است. یکی از بهترین قضایا این کتابخانه سبک بودن سینتکس قالب‌نویسی آن است. همچنین موتور رندرینگ آن بسیار سریع است و سازگاری بالایی را ارائه می دهد.

Svelte

فریمورک‌های استاندارد معمولا همراه با یک کامپایلر و یک کتابخانه که شیوه ارائه محصول توسط کامپایلر را مدیریت می‌کند ارائه می‌شوند. حال چنین مسئله‌ای در بیشتر اوقات باعث می‌شود که زمان اجرای کتابخانه و ارائه محصول که همان برگه وب است کمی طول بکشد. کامپایلر Svelte تنها با استفاده کردن از جاوااسکریپت اصلی که توسط مرورگرها استفاده می‌شود این مشکل را تا حد بسیاری حل کرده است. ساختار این فریمورک به صورتی هوشمندانه طراحی شده است که علاوه بر سبک بودن وبسایت، حافظه بسیار کمی را نیز اشغال می‌کند.

Inferno

Inferno یکی دیگر از فریمورک‌های ساخته شده است که شبیه به ری‌اکت عمل می‌کند، اما روند اجرایی آن سریع‌تر است و حجم کمتری برای دانلود نیاز دارد. برای دسترسی به چنین خروجی، Inferno مکانیسم‌های مختلفی را از بدنه اصلی حذف کرده است. بیشتر APIهای این کتابخانه با APIهای ری‌اکت شباهت بالایی دارند.

Preact

یکی از کوچکترین توزیع‌هایی که براساس ری‌اکت ساخته شده است Preact است. در این کتابخانه ویژگی‌های مفیدی مانند Virtual DOM و لایه‌بندی کامپوننت‌های پیچیده پیاده‌سازی شده است اما برخی از موارد که ممکن است ری‌اکت با آن‌ها کار بکند غیر فعال شده‌اند. برای مثال می‌توان به حال ارث‌بری از propها اشاره کرد.

Hapi

برای دسترسی به بیشتر فریمورک‌ها تنها نیاز است که قطعه کد ساده را در کدهای‌تان قرار دهید. اما Hapi بیشتر شبیه به یک مجموعه از پلاگین‌ها است. حالتی که شما کدهای مختلف از یکدیگر را دارید و می‌خواهید آن‌ها را با همدیگر ترکیب کنید. در نهایت شما می‌توانید چیزهایی که نیاز دارید و می‌خواهید در پروژه‌تان وجود داشته باشد را انتخاب می‌کنید.

Koa

Koa یک وب فریمورک جدید است که توسط تیم توسعه Express ساخته شده است. این ابزار به شما کمک می‌کند تا بتوانید بهتر میزان زیادی از داده و مسیر‌ها را مدیریت کنید. همچنین به شما قابلیت بسیار خوبی برای مدیریت خطاها را می‌دهد. با بهره‌گیری از توابع async به شما اجازه می‌دهد که بهتر از حالت Callback بهره ببرید. Koa از middleware در هسته خود استفاده نمی‌کند، بنابراین توسعه نرم افزار در این حالت بسیار سریع‌تر اتفاق می‌افتد.

Nest

Nest گزینه‌ای مناسب برای رفع کردن پیچیدگی‌های موجود در یک سرور است. معماری این فریموک براساس کنترلرها، پایپ‌ها و... ساخته شده است. این فریمورک همچنین قابلیت مدیریت درخواست‌های GraphQL و میکروسرویس‌ها را دارد.

Vanila JS

Vanilla JS یک فریمورک سریع، سبک و چند سکوی است که برای ایجاد اپلیکیشن‌های قدرتمند جاوااسکریپت ساخته شده است. در این ابزار شما علاوه بر کاربردهایی که در اصل فریمورک قرار دارد، قابلیت این را نیز خواهید داشت که موارد دیگری را نیز به پکیجی که دریافت می‌کنید اضافه کنید. مواردی مانند انیمیشن‌ها، عبارات با قاعده، کتابخانه ریاضی، رشته‌ها، آرایه و موارد بسیار دیگری.

منبع

مقالات پیشنهادی

مقدمه‌ای سریع بر Vuejs

برای شروع کار با Vuejs شما نیاز دارید که به خوبی HTML، CSS و Javascript را درک کنید. خب بعد از این موارد شما آماده یادگیری ویوجی‌اس خواهید بود

ReactJS ، Angular 5 و Vue.js علیه یکدیگر

فریم‌وورک‌های JavaScript با سرعتی بسیار بالایی در حال توسعه هستند، که یعنی امروزه نسخه‌های در حال بروز شدن Angular، ReactJS و بازیکن جدید، یعنی Vue.js...

ایجاد اپلیکیشنی مدرن با استفاده از Django و Vue.js - بخش اول

در این مقاله ما قصد داریم از چهارچوب Django و Django REST برای بک‌اند و Vue.js برای فرانت‌اند است. APIها با کمک Axois (یک کتابخانه HTTP Client) از طری...

چگونه با استفاده از Meteor و Vuejs یک پیشخوان بلادرنگ ایجاد کنیم؟

در این آموزش ما از دو ابزار کاملا متفاوت استفاده می‌کنیم، مطمئنا با ویوجی‌اس آشنایی دارید، اما در کنار ویوجی‌اس می‌خواهیم با Meteor نیز کار کنیم. ما ا...