AppNav
De AppNav component creëert een zijmenu uit AppNavItem items. Items kunnen linken naar interne weergaven of externe bronnen, genest zijn onder bovenliggende items om hiërarchische menu's te vormen, en kunnen iconen, badges of andere componenten bevatten om gebruikers meer context in één oogopslag te geven.
Items toevoegen en nestelen
AppNavItem instanties worden gebruikt om de AppNav structuur te vullen. Deze items kunnen eenvoudige links zijn of geneste groepskoppen die kind-items bevatten. Groepskoppen zonder links fungeren als uitvouwbare containers.
Gebruik addItem() om items aan de navigatie toe te voegen:
AppNavItem dashboard = new AppNavItem("Dashboard", "/dashboard");
AppNavItem admin = new AppNavItem("Admin");
admin.addItem(new AppNavItem("Gebruikers", "/admin/users"));
admin.addItem(new AppNavItem("Instellingen", "/admin/settings"));
AppNav nav = new AppNav();
nav.addItem(dashboard);
nav.addItem(admin);
Topniveau-items in een navigatiestructuur zijn doorgaans bedoeld om uitvouwbaar te zijn — niet om op te klikken. Een path instellen op dergelijke items kan gebruikers in verwarring brengen die verwachten dat deze sub-items onthullen in plaats van ergens anders naartoe te navigeren.
Als je wilt dat de groepskop een aangepaste actie triggert (zoals het openen van externe documentatie), houd dan het groepspad leeg en voeg in plaats daarvan een interactief element toe zoals een IconButton aan de suffix van het item. Dit houdt de gebruikerservaring consistent en overzichtelijk.
Toon Code
- AppNavView.java
- AppNavPageView.java
Items linken
Elke AppNavItem kan navigeren naar een interne weergave of een externe link. Je kunt dit definiëren met statische paden of geregistreerde weergaveklassen.
Statische paden
Gebruik stringpaden om links direct te definiëren:
AppNavItem docs = new AppNavItem("Documentatie", "/docs");
AppNavItem help = new AppNavItem("Hulp", "https://support.example.com");
Geregistreerde weergaven
Als je weergaven zijn geregistreerd bij de router, kun je de klasse doorgeven in plaats van een hardcoded URL:
AppNavItem settings = new AppNavItem("Instellingen", SettingsView.class);
Als je geannoteerde route routeparameters ondersteunt, kun je ook een ParametersBag doorgeven:
ParametersBag params = ParametersBag.of("id=123");
AppNavItem advanced = new AppNavItem("Gebruiker", UserView.class, params);
Met queryparameters
Geef een ParametersBag door om querystrings op te nemen:
ParametersBag params = ParametersBag.of("param1=value1¶m2=value2");
AppNavItem advanced = new AppNavItem("Geavanceerd", SettingsView.class, params);
advanced.setQueryParameters(params);
Doelgedrag
Beheer hoe links openen met setTarget(). Dit is vooral nuttig voor externe links of pop-out weergaven.
SELF(standaard): Opent in de huidige weergave.BLANK: Opent in een nieuw tabblad of venster.PARENT: Opent in de bovenliggende browsecontext.TOP: Opent in de topniveau browsecontext.
AppNavItem help = new AppNavItem("Hulp", "https://support.example.com");
help.setTarget(AppNavItem.NavigationTarget.BLANK);
Prefix en suffix
AppNavItem ondersteunt prefix- en suffix-componenten. Gebruik deze om visuele duidelijkheid te bieden met iconen, badges of knoppen.
- Prefix: verschijnt vóór het label, nuttig voor iconen.
- Suffix: verschijnt na het label, geweldig voor badges of acties.
AppNavItem notifications = new AppNavItem("Waarschuwingen");
notifications.setPrefixComponent(TablerIcon.create("alert"));
notifications.setSuffixComponent(TablerIcon.create("link"));
Auto-openende groepen
Gebruik setAutoOpen(true) op de AppNav component om automatisch geneste groepen uit te vouwen wanneer de app wordt vernieuwd.
nav.setAutoOpen(true);