Bir site yapiyoruz. Sitede anasayfa bilesenleri,yönetim paneli ve ek olarak 404 sayfasi var. Normalde app-routing.mudule.ts de component bazli bir routing yapisi kurgulayabiliriz. Fakat sadelik ve kullanim kolayligi acisindan lazy-loading seklinde yüklenen modüler bir yapi kurgulayacagiz. Anasayfa bilesenlerini SiteModule altinda toplayacagiz. Site yönetim ile ilgili bilesenleri ise DashboardModule de toplayacagiz. PageNotFound mesaji icin ise bir component kullanacagiz.
app-routing.mudule.ts dosya icerigimiz su sekildedir:
Görüldügü üzere app-routing.mudule.ts dosyamiz SiteModule ve DashboardModule featured module kullanimi ile oldukca sade bir görünüme kavustu.
Simdi ilk olarak SiteModule routing mekanizmasini ele alalim. site-routing.mudule.ts asagidaki gibidir:
Anasayfa icin kullandigimiz SiteModule component’leri iki ayri sablon kullaniyor: DefaultLayoutComponent ve LandingPageLayoutComponent. Simdi bu layoutlari ve layoutlara özgü ciktimizi ele alalim.
default-layout.component.html dosyamiz ve kullanim sonucu olusan ekran görüntüsü asagidaki gibidir:
landing-page-layout.component.html dosyamiz ve kullanim sonucu olusan ekran görüntüsü asagidaki gibidir:
Ikinci olarak DashboardModule routing mekanizmasini ele alalim. dashboard-routing.mudule.ts asagidaki gibidir:
Yönetim paneli icin kullandigimiz DashboardModule component’leri iki ayri sablon kullaniyor: AuthorisedDefaultLayoutComponent ve AuthorisedLandingPageLayoutComponent. Simdi bu layoutlari ve layoutlara özgü ciktimizi ele alalim.
authorised-default-layout.component.html dosyamiz ve kullanim sonucu olusan ekran görüntüsü asagidaki gibidir:
authorised-landing-page-layout.component.html dosyamiz ve kullanim sonucu olusan ekran görüntüsü asagidaki gibidir:
Ücüncü olarak URL hatasi (PageNotFound durumu) icin app-routing.module.ts dosyamizda layout olarak landing-page-layout.component.html dosyasini kullandik. Örnek görüntü asagidaki gibidir:
Görüldügü üzere Angular routing mekanizmasinda lazy-loading modül kullanimi ile routing mekanizmasi alt modüllere yayilarak daha sade ve yönetilebilir uygulamalar yapmak mümkün. Ayrica lazy-load modüllerde güvenlik ayari yapmak da oldukca kolay. Örnegin asagidakiki kod parcasinda DashboardModule icin AuthGaurdService güvenlik kontrolünü tek satirda ( canActivate:[AuthGaurdService])ekledik. Böylece “/dashboard/..” ile devam eden tüm sayfalar kullanicinin sisteme giris yapmasina tabi olarak calisacak.
Yorumlar