Nested Routes
Sisäkkäiset reitit mahdollistavat lapsireittien renderöinnin vanhemmissa reiteissä, luoden modulaarisen ja uudelleenkäytettävän käyttöliittymän. Vanhempireitit määrittelevät jaetut komponentit, kun taas lapsireittejä injektoidaan spesifisiin ulosottoihin näissä vanhemmissa komponenteissa.
Sisäkkäisten reittien määrittäminen
Sisäkkäiset reitit luodaan outlet
-parametrin avulla @Route
-annotaatiossa, joka perustaa vanhempi-lapsi-suhteen. Outlet
määrittää, mihin lapsikomponentti renderöidään vanhemman reitin sisällä.
@Route
public class MainLayout extends Composite<AppLayout> {
public MainLayout() {
setHeader();
setDrawer();
}
}
@Route(outlet = MainLayout.class)
public class DashboardView extends Composite<Div> {
public DashboardView() {
getBoundComponent().add(new H1("Dashboard-sisältö"));
}
}
@Route(outlet = DashboardView.class)
public class SettingsView extends Composite<Div> {
public SettingsView() {
getBoundComponent().add(new H1("Asetukset-sisältö"));
}
}
Esimerkissä:
MainLayout
on Layout Route.DashboardView
on View Route, joka on upotettuMainLayout
-komponenttiin.SettingsView
on View Route, joka on upotettuDashboardView
-komponenttiin.
Kun navigoidaan osoitteeseen /dashboard/settings
, reititin:
- Renderöi
MainLayout
. - Injektoi
DashboardView
-komponentinMainLayout
:in ulosottoon. - Lopuksi injektoi
SettingsView
-komponentinDashboardView
:n ulosottoon.
Tämä hierarkkinen rakenne näkyy URL-osoitteessa, jossa jokainen segmentti edustaa tasoa komponenttihierarkiassa:
- URL:
/dashboard/settings
- Hierarkia:
MainLayout
: Layout RouteDashboardView
: View RouteSettingsView
: View Route
Tämä rakenne varmistaa johdonmukaiset jaetut UI-komponentit (kuten otsikot tai navigointivalikot), samalla kun mahdollistaa sisällön muuttuvan dynaamisesti näiden ulkoasujen sisällä.