معرفی کتابخانه «اسپریکس»

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

چرا؟ از این جور چیزا زیاد هست!

اسپریکس با بقیه فرق داره. کتاب‌خونه‌های بزرگ مثل ری‌اکت و ویو از Virtual DOM استفاده می‌کنن، و این یعنی هرچیزی با جاوااسکریپت رندر میشه در حالی که HTML تقریبا خالیه :/ و این یه مشکلی رو به وجود میاره: خروجی جاوااسکریپت ما خیلی بزرگ میشه (در بهترین حالت ۱۰۰ کیلوبایت تا جایی که من دیدم) و اجرای این کدها برای مرورگر شاید کمی سخت و هزینه‌بر باشه و لود برنامه شما زمان بیشتری ببره.

ویو: تقریبا صدبرابر HTMLـمون جاوااسکریپت داریم :/
ویو: تقریبا صدبرابر HTMLـمون جاوااسکریپت داریم :/

پس چطوری کار میکنه؟

اسپریکس هم مثل ویو (سعی میکنم دیگه از ری‌اکت مثالی نزنم) state داره ولی چیزی رو رندر نمیکنه. مثلا این تیکه کد رو ببینید:

<input @bind="name">
<div>hello @(name)</div>

اسپریکس همیشه یه لیست آماده داره از کارایی که بعد از هر تغییر انجام بده. هروقت ما تایپ می‌کنیم، name تغییر کرده پس چندتا فانکشن باید اجرا بشن؛ و یکی از اون‌ها متن تگ div رو عوض میکنه.
و در نهایت اگه توی اون فیلد تایپ کنیم X، پیام hello X می‌بینیم.

خلاصه‌تر بگم: با اسپریکس بخش‌های template و logic همیشه جدا هستن و این کدهای شما رو منظم‌تر میکنه. حجم خیلی کمی هم داره (مینیفای‌شده‌: ۷ کیلوبایت، مینیفای + کمپرس شده: کمتر از ۳ کیلوبایت)!

جمع‌بندی

اسپریکس شاید نتونه جایگزین کتاب‌خونه‌های فعلی باشه اما برای برنامه‌های نسبتا کوچیک کارسازه.
در حال حاضر هم دارم روش کار میکنم (ریپازیتوری در گیت‌هاب).
اگه نظرتون جلب شد یه star بدید یا اگه خواستید یه کمکی بکنید؛ ممنون! ;)