برای ایجاد کامپوننت های داینامیک ما دو رویکرد داریم. رویکرد اول استفاده از ویژگی ngif در Angular است که بسیار پر کاربرد و توصیه می شود. اما رویکرد دوم که کمی پیچیده تر از رویکرد اول بنظر می رسد. در رویکرد دوم کامپوننت ها با استفاده از ویژگی های Angular در کد ایجاد می شود ( Component Create in code ) .
به بیان کامل تر به متن زیر می توان استناد کرد :
"Angular to be aware of this component when it need to create it Programmtically . "
در ادامه دنبال دانستن چگونه به کار گرفتن root component trees خواهم بود.
ماژول ها :
1- در Angular به تنهایی کار می کنند.
....
توابع بلوک اساسی هر برنامه در JavaScript هستند. قبل از هر سخن باید روی این لینک کنید تا بدانیم که چه چیزی نقطه اشتراک JavaScript و TypeScript است.
توابع نحوه ایجاد لایه های انتزاعی (که صرفا جهت بلاکبندی SourceCode استفاده میشوند)، کلاس های تقلید ( اعمال و رفتار برنامه که به صورت دائم تکرار می شوند.)، پنهان کردن اطلاعات و ماژول ها هستند.
لایه های انتزاع: Layers of abstraction
کلاس های تقلید: mimicking Classes
پنهان کردن اطلاعات: Information hiding
ماژول ها: Modules
در TypeScript، در حالی که کلاس ها، namespaces و ماژول ها وجود دارد، توابع همچنان نقش اصلی را ذر توصیف انجام کارها دارند.
نکته: TypeScript، همچنین برخی قابلیت های جدید را به توابع استاندارد JavaScript اضافه می کند تا کار با آنها راحت تر باشد.
Lifecycle های موجود در فریم ورک Angular عبارتند از :
1- ngOnChanges
2- ngOnInit
3- ngDoCheck
4- ngAfterContentInit
5- ngAfterContentChecked
6- ngAfterViewInit
7- ngAfterViewChecked
8- ngOnDestroy
هر کامپوننت یک چرخه حیات دارد، از زمانی چرخه حیاتش شروع می شود که Angular کلاس کامپوننت را نمونه سازی می کند و View کامپوننت را به همراه ViewChild ارائه می دهد.
چرخه حیات با تشخیص تغییر ادامه می یابد،زیرا Angular بررسی می کند (Check) که چه زمانی خصوصیات Data-binding تغییر می کند و در صورت لزوم، View و Component را به روز ( Update ) می کند.
چرخه حیات زمانی پایان می یابد که Angulr ، چرخه حیات Component را از بین ببرد. و Template ارائه شده آن را از Dom حذف کند.
نکته : Directives چرخه عمر مشابهی دارند، زیرا Angular نمونه هایی را در حین اجرا ایجاد، به روز می کند و از بین می برد.