Overslaan naar hoofdinhoud

Navigation Events

Openen in ChatGPT

Naast component-specifieke lifecycle-gebeurtenissen, kunt u globale gebeurtenisluisteraars op routersniveau registreren. Dit maakt het mogelijk om navigatie wereldwijd over de gehele app te volgen, wat nuttig is voor logging, analytics of andere dwarsliggende zorgen.

Voorbeeld: Globale navigatieluisteraar

Router.getCurrent().addNavigateListener(event -> {
Location location = event.getLocation();
console().log("Genavigeerd naar: " + location.getFullURI());
});

In dit voorbeeld wordt een globale luisteraar geregistreerd om elke navigatiegebeurtenis in de app te loggen. Dit is nuttig voor auditing of het volgen van paginaweergaven.

Registreren van globale lifecycle gebeurtenisluisteraars

Globale luisteraars kunnen aan verschillende lifecycle-gebeurtenissen worden gekoppeld, waaronder:

  • WillEnterEvent: Wordt geactiveerd voordat een component van een route aan de DOM wordt gehecht.
  • DidEnterEvent: Wordt geactiveerd nadat een component aan de DOM is gehecht.
  • WillLeaveEvent: Wordt geactiveerd voordat een component van de DOM wordt losgekoppeld.
  • DidLeaveEvent: Wordt geactiveerd nadat een component van de DOM is losgekoppeld.
  • NavigateEvent: Wordt geactiveerd elke keer dat navigatie plaatsvindt.
  • ActivateEvent (sinds 25.03): Wordt geactiveerd wanneer een gecached component opnieuw wordt geactiveerd.
Gebruik van Observers om in Lifecycle-gebeurtenissen te haken

U kunt ook haken in de lifecycle-gebeurtenissen met behulp van observers. Voor meer details, verwijzen we naar de Lifecycle Observers.

Voorbeeld: Globale WillLeaveEvent-luisteraar

Router.getCurrent().addWillLeaveListener(event -> {
ConfirmDialog.Result result = showConfirmDialog(
"Weet u zeker dat u dit scherm wilt verlaten?",
"Verlaat Scherm",
ConfirmDialog.OptionType.OK_CANCEL,
ConfirmDialog.MessageType.WARNING);

event.veto(result == ConfirmDialog.Result.CANCEL);
});

In dit geval wordt de WillLeaveEvent wereldwijd gebruikt om een bevestigingsdialoog weer te geven voordat de gebruiker navigeert weg van een scherm.