آیا وب کامپوننتها تو دنیای ایجنتها آیندهای دارن؟
خلاصهٔ کاملتر
نولان لاوسون تو این مقاله از Modern Web Guidance گوگل شروع میکنه، یعنی یه مجموعه skill که به ایجنتها داده میشه تا از قابلیتهای جدید مرورگر استفاده کنن. نویسنده کدش رو بررسی کرده و میگه وب کامپوننتها اونجا یه فکر فرعیان: تو شش ماه اول تقریباً اسمی ازشون نبوده و فقط سه هفته پیش یه commit اومده که بیشتر برای کساییه که از قبل ازشون استفاده میکنن. حتی یه بخش داره با عنوان «تصمیم بگیر که اصلاً به custom element نیاز داری یا نه».
به گفتهٔ نویسنده، دلیلش اینه که وب کامپوننتها چیزی به تجربهٔ کاربر نهایی اضافه نمیکنن. مثلاً shadow DOM (یعنی DOM ایزولهای که استایلش با بقیهٔ صفحه قاطی نمیشه) شاید CSS رو سریعتر کنه، ولی همین بهبود رو با scope کردن CSS موقع build هم میشه گرفت، کاری که Svelte و Vue و Tailwind از قبل انجام میدن.
لاوسون که سالها روی LWC کار کرده و از وب کامپوننتها دفاع کرده، قبول میکنه که کدنویسی با ایجنت ارزش اصلیشون رو ضعیف کرده. اونها برای دنیایی ساخته شدن که HTML دستی نوشته میشد و کد کمیاب بود، پس reuse یه ضرورت اقتصادی بود. حالا تیمها کل فرانتاند رو از یه فریمورک به یکی دیگه بازنویسی میکنن و ابزاری مثل shadcn که کد زیادی تولید میکنه، برای LLMها یه مزیت حساب میشه.
نویسنده دو دلیل نسبتاً ضعیف برای نجات وب کامپوننتها میاره. اول micro-frontendها، یعنی تقسیم UI بین تیمها یا گروههای ایجنت که CSS و eventهاشون با هم قاطی نشه. البته iframe ایزولهسازی محکمتری داره. دوم reuse: کامپوننت خودش رو مثال میزنه که دلیلی نداره برای React و Vue و Svelte جدا ساخته بشه. اون React رو هم لایهٔ نهایی reuse نمیدونه، چون بنچمارکهایی مثل js-framework-benchmark هنوز به ضررشن.
در نهایت نویسنده میگه مشکلات قدیمی مثل server-side rendering، اشتراک stylesheet و accessibility هنوز حل نشدن و باید حل بشن. ولی یه برد قطعی هست: وب کامپوننتها نشون دادن المنتهایی مثل یا چطور از ابزارهای خود پلتفرم ساخته میشن. مفاهیمی مثل parts و slots هم از اونها به Open UI رسیده و به قابلیتهایی مثل قابل شخصیسازی، popover و invoker commands کمک کرده.
نکات کلیدی:
- Modern Web Guidance گوگل تو شش ماه اول تقریباً هیچ اشارهای به وب کامپوننتها نداشت.
- بهبود سرعت CSS با shadow DOM رو میشه با scope کردن CSS موقع build هم گرفت.
- micro-frontend و کامپوننتهای مستقل مثل هنوز کاربرد خوبی برای وب کامپوننتها هستن.
- SSR، اشتراک stylesheet و accessibility تو وب کامپوننتها هنوز حل نشده.
- parts و slots از وب کامپوننتها به Open UI و قابلیتهایی مثل popover رسیدن.




