Navigation Events
Lisäksi komponenttikohtaisille elinkaaritapahtumille voit rekisteröidä globaaleja tapahtumakuuntelijoita reitittimen tasolla. Tämä mahdollistaa navigoinnin seuraamisen koko sovelluksessa, mikä on hyödyllistä lokitusta, analytiikkaa tai muita poikkileikkaavia huolenaiheita varten.
Esimerkki: Globaali navigointikuuntelija
Router.getCurrent().addNavigateListener(event -> {
Location location = event.getLocation();
console().log("Navigated to: " + location.getFullURI());
});
Tässä esimerkissä rekisteröidään globaali kuuntelija, joka kirjaa jokaisen navigointitapahtuman sovelluksessa. Tämä on hyödyllistä tarkastelua tai sivunäkymien seuraamista varten.
Globaalien elinkaaritapahtumakuuntelijoiden rekisteröinti
Globaalit kuuntelijat voivat olla kiinnitettyinä erilaisiin elinkaaritapahtumiin, mukaan lukien:
WillEnterEvent
: Käynnistyy ennen kuin minkä tahansa reitin komponentti liitetään DOM:iin.DidEnterEvent
: Käynnistyy sen jälkeen, kun komponentti on liitetty DOM:iin.WillLeaveEvent
: Käynnistyy ennen kuin komponentti irrotetaan DOM:ista.DidLeaveEvent
: Käynnistyy sen jälkeen, kun komponentti on irrotettu DOM:ista.NavigateEvent
: Käynnistyy joka kerta, kun navigointi tapahtuu.
Voit myös liittää elinkaaritapahtumiin käyttämällä observereita. Lisätietoja löytyy Elinkaarikontrollerit.
Esimerkki: Globaali WillLeaveEvent
kuuntelija
Router.getCurrent().addWillLeaveListener(event -> {
ConfirmDialog.Result result = showConfirmDialog(
"Are you sure you want to leave this view?",
"Leave View",
ConfirmDialog.OptionType.OK_CANCEL,
ConfirmDialog.MessageType.WARNING);
event.veto(result == ConfirmDialog.Result.CANCEL);
});
Tässä tapauksessa WillLeaveEvent
käytetään globaalisti näyttämään vahvistusdialogi ennen kuin käyttäjä navigoi pois mistään näkymästä.