htmx؛ قدرت تعامل رو مستقیم به HTML میآره
خلاصهٔ کاملتر
htmx یه کتابخونهٔ فرانتاند کوچیک و بدون وابستگیه که شعارش «ابزارهای پرقدرت برای HTML»ه. کاری که میکنه اینه که قابلیتهایی مثل AJAX، انتقالهای CSS، وبسوکت و Server-Sent Events رو مستقیم و فقط با کمک اتریبیوتها در دسترس HTML قرار میده، بدون اینکه مجبور باشی کد جاوااسکریپت جدا بنویسی.
انگیزهٔ پشت پروژه یه سری سؤال سادهست: چرا فقط و باید بتونن درخواست HTTP بزنن؟ چرا فقط رویدادهای click و submit باید این درخواستها رو trigger کنن؟ و چرا فقط باید بتونی کل صفحه رو عوض کنی؟ htmx با برداشتن این محدودیتها سعی میکنه HTML رو بهعنوان یه هایپرتکست کاملتر کنه.
طرز کارش خیلی سرراسته. مثلاً کافیه روی یه دکمه اتریبیوتهای hx-post و hx-swap رو بذاری:
<button hx-post="/clicked" hx-swap="outerHTML">
Click Me
</button>این یعنی وقتی کاربر روی دکمه کلیک کرد، یه درخواست AJAX به مسیر /clicked بره و کل دکمه با پاسخ HTML سرور جایگزین شه. همین منطق ساده بهجای نوشتن کلی جاوااسکریپت، مستقیم تو خود HTML اتفاق میافته.
از نظر اندازه هم سبکه؛ حدود ۱۶ کیلوبایت فشردهشده، بدون وابستگی و قابل توسعه با افزونهها. تو سایت پروژه اومده که تو یه پورت واقعی از react به htmx، حجم کدبیس تا ۶۷٪ کم شده. نکتهٔ فنی هم اینه که نسخهٔ ۲.x پشتیبانی از IE رو کنار گذاشته و اگه بهش نیاز داری باید سراغ نسخهٔ ۱.x بری.
مهمترین خبر تازه اینه که htmx v4 الان بهطور فعال در حال توسعهست و به بتا رسیده، با هدف انتشار تو تابستون ۲۰۲۶. htmx در ادامهٔ پروژهٔ قدیمیتر intercooler.js ساخته شده و پشتش هم یه کتاب به اسم Hypermedia Systems برای ساخت اپلیکیشنهای مبتنی بر هایپرمدیا منتشر شده.
نکات کلیدی:
- دسترسی به AJAX، انتقال CSS، وبسوکت و SSE فقط با اتریبیوتهای HTML، بدون نیاز به نوشتن جاوااسکریپت
- کتابخونهای حدود ۱۶ کیلوبایت، بدون وابستگی و قابل توسعه با افزونه
- ایدهٔ اصلی: برداشتن محدودیتهای HTML تا هر المان بتونه درخواست HTTP بزنه
- نسخهٔ ۲.x پشتیبانی از IE رو حذف کرده
- نسخهٔ ۴ به بتا رسیده و برای تابستون ۲۰۲۶ هدفگذاری شده




