عنصر سفارشی¶
در قسمتهای قبل (۱) شیوه راهاندازی برنامه، (۲) شیوه ارسال داده به عنوان پرچم در زمان راهاندازی و (۳) شیوه ارسال پیام بین Elm و جاوااسکریپت را با استفاده از پورت مشاهده کردیم. درست حدس زدید، یک راه دیگر برای تعامل با جاوااسکریپت وجود دارد!
به نظر میرسد مرورگرهای وب بطور فزایندهای از Custom Elements پشتیبانی میکنند. این کار برای گنجاندن جاوااسکریپت در برنامههای Elm بسیار مفید است.
در این قسمت، یک نمونه کوچک استفاده از عنصر سفارشی برای انجام برخی عملیات بومیسازی (l10n) و بینالمللیسازی (i18n) آورده شده است.
ایجاد عنصر سفارشی¶
فرض کنید میخواهیم تاریخ را بومیسازی کنیم، اما هنوز عملکرد آن در Elm پیادهسازی نشده است. شاید بخواهید تابعی بنویسید که تاریخ را بومیسازی کند:
اما چگونه میتوانیم از این تابع در Elm استفاده کنیم؟! مرورگرهای وب به شما اجازه میدهند نوع جدیدی از DOM Node به نام عنصر سفارشی را به این شکل ایجاد کنید:
توابع مهم در اینجا attributeChangedCallback
و observedAttributes
هستند. برای شناسایی تغییرات در ویژگیهایی که برای شما مهم هستند، به چنین عملکردی نیاز دارید.
این کار را قبل از راهاندازی کد Elm انجام دهید تا بتوانید کدی مانند این را در Elm بنویسید:
اکنون میتوانید با فراخوانی تابع viewDate
، به اطلاعات بومیسازی شده در قسمت view
دسترسی داشته باشید.
میتوانید نسخه کامل این برنامه را از اینجا مشاهده کنید.
اطلاعات بیشتر¶
Luke Westby تجربه بیشتری در زمینه کار با عنصر سفارشی دارد و فکر میکنم سخنرانی او در کنفرانس Elm Europe مقدمهای عالی باشد!
مستندات مربوط به عنصر سفارشی ممکن است کمی گیجکننده باشد. اگر استفاده از آن انتخاب مناسبی برای پروژه شما است، امیدوارم این مقدمه برای شروع گنجاندن منطقی ساده برای ماژول Intl
در مرورگر وب یا حتی ویجتهای بزرگ React کافی باشد.