با NgModule در انگولار خداحافظی کنید :)
در انگولار امکانی فراهم شده تحت عنوان standalone component. من این عنوان را «کامپوننت مستقل» ترجمه کردهام.
کامپوننتهای مستقل راه سادهای برای ساخت برنامههای انگولار ارائه میدهند، همچنین کامپوننتها، دایرکتیوها و پایپهای مستقل، با کاهش نیاز به NgModuleها تجربه برنامهنویسی بهتری را رقم میزنند.
کامپوننت مستقل انگولار در نسخه 14 تحت developer preview منتشر شد و برای استفاده در نسخه 15 تثبیت شد. اکنون تیم انگولار در نسخه 16 برای تسهیل انتقال اپلیکیشنها به کامپوننتهای مستقل، راهنمای مهاجرت (standalone migration guid) را نیز تهیه کردهاند. اپلیکیشنهای موجود میتوانند بهصورت اختیاری و تدریجی و بدون دردسر به روش جدید مهاجرت کنند.
بیایید بیشتر در مورد کامپوننتهای مستقل بدانیم.
کامپوننتها، دایرکتیوها و پایپهایی که بصورت مستقل تعریف میشوند، دیگر نیازی به اعلان در NgModule ندارند. کامپوننتهای مستقل بهجای دریافت dependecyهای خود از طریق NgModuleها، آنها را مستقیماً در خود مشخص میکنند.
هنگام نوشتن یک کامپوننت مستقل ممکن است بخواهید از کامپوننتها، دایرکتیوها یا پایپهای دیگر در قالب کامپوننت استفاده کنید. برخی از این وابستگیها ممکن است به صورت مستقل معرفی نشده باشند بلکه توسط NgModule موجود اعلام و تعریف شده باشند. در این حالت، میتوانید NgModule را مستقیماً وارد کامپوننت مستقل کنید.
همچنین کامپوننتهای مستقل میتوانند به کامپوننتهای موجود مبتنی بر NgModules وارد شوند. بدین صورت اپلیکیشنهای موجود (که امروزه از NgModules استفاده میکنند)، میتوانند به تدریج خود را با سبک جدید و کامپوننتهای مستقل وفق دهند.
یک برنامه انگولار را میتوان بدون NgModule، با استفاده از یک یک کامپوننت مستقل که به عنوان کامپوننت اصلی برنامه مشخص شده است، بالا آورد. این کار با استفاده از bootstrapApplication API انجام میشود.
روتر انگولار نیز بهروزرسانی و سادهسازی شده است تا بتواند از کامپوننتهای مستقل بهرهمند شود. با این بهروزرسانی، در بسیاری از سناریوهای معمول و lazy-loading دیگر نیازی به NgModule نیست.
🔗 نسخه کامل این مقاله را میتوانید در اینجا مطالعه کنید.
🔗 لینک مقاله در ویرگول
___
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#مریم_داودی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
_______
Post #2189
2.26K