Terug naar blog

Navigatie met RouterLink, Navigate en NavigateByUrl in Angular Router

Navigatie met RouterLink, Navigate en NavigateByUrl in Angular Router

Introductie

Angular-applicaties zijn tegenwoordig heel gebruikelijk. Ze zijn gebouwd met het concept van Single Page Applications (SPA). In dergelijke applicaties is de routing tussen webpagina's anders dan bij traditionele websites, omdat er componenten worden gebruikt. In Angular moet je RouterLink gebruiken voor navigatie om door de applicatie te navigeren. RouterLink is een directive en biedt Router.navigate en Router.navigateByURL methoden om tussen de componentklassen te navigeren.

In deze handleiding gaan we kijken naar RouterLink, Router.navigate, en Router.navigateByURL samen met code- voorbeelden.

RouterLink

In HTML wordt een link normaal gesproken ingevoegd met een anchor-tag <a> zoals hieronder:

Deze voorbeeldlink navigeert de gebruiker naar de /sample pagina. Zoals hierboven vermeld, heeft een Single-Page application (SPA) echter geen verschillende pagina's om naar te linken. In plaats daarvan heeft het verschillende weergaven of componenten om aan de gebruiker te tonen.

Als je een gebruiker wilt laten navigeren en de weergave wilt laten wijzigen, moet je de RouterLink directive gebruiken in plaats van href:

Dit RouterLink voorbeeld leidt de gebruiker naar de component op /users/example. De verschillende URL-segmenten kunnen ook in een array worden doorgegeven, zoals in het volgende voorbeeld:

Deze twee voorbeelden zijn op een andere manier geformatteerd, maar verwijzen nog steeds naar dezelfde component op /users/example.

  • Relatief pad

De RouterLink maakt het mogelijk om relatieve URL's op te geven. We kunnen ../ gebruiken om naar de hogere navigatieniveaus te gaan. Hieronder zie je hoe we dit kunnen bereiken:

In het bovenstaande voorbeeld, als de gebruiker zich bevindt op /users/posts, zal de navigatie de gebruiker naar brengen/posts/parent. Je kunt de URL's ook relatief specificeren met ./, ../, of zelfs zonder slash aan het begin indien nodig.

  • Parameters

Er kunnen scenario's zijn waarin je gegevens tussen de routes moet doorgeven. Een eenvoudig voorbeeld is wanneer de gebruiker het formulier invult en je hem naar het volgende deel van het formulier leidt voor verdere details.

Om de parameters door te geven, wordt een object dat de gegevens inkapselt doorgegeven in de lijst met URL-segmenten:

Hierboven zal de Router navigeren naar /users;display=sample/xyz.

  • Benoemde outlets

De benoemde router outlets zijn simpelweg router outlets met namen. Laten we eens naar de code hiervoor kijken:

In dat voorbeeld wordt het xyz segment in de outlet met de naam side geplaatst. We kunnen ook meerdere benoemde outlets specificeren, zoals hieronder:

Dit vervangt het first segment door abc en het second segment wordt vervangen door xyz.

Router

In Angular is de Router class wordt gebruikt om de routes te definiëren en erdoorheen te navigeren. Dit wordt bereikt door twee methoden: Router.navigate en Router.navigateByUrl. Beide methoden retourneren een promise. Deze promise kan drie waarden hebben: true, false, of null.

  • De waarde is true wanneer de navigatie succesvol is.

  • De waarde is null wanneer er geen navigatie is.

  • En false als de navigatie om een of andere reden mislukt.

Als je deze methoden beschikbaar wilt hebben in je applicatie, moet je eerst de Router class importeren in je component-class:

Vervolgens moet je deze Router injecteren in de constructor naar de dependencies:

Met deze setup ben je klaar om de Router.navigate en Router.navigateByUrl methoden te gebruiken in je applicatie.

Router.navigate

De Router.navigate methode accepteert een array van URL-segmenten. Laten we kijken naar een basisvoorbeeld van een Router.navigate code:

Router.navigateByUrl

Laten we tot slot kijken naar Router.navigateByUrl. Deze methode is vergelijkbaar met Router.navigate maar in plaats van URL-segmenten te accepteren, accepteert het een string die de URL specificeert. Deze navigatie moet absoluut zijn en moet / aan het begin hebben:

De bovenstaande code leidt de gebruiker naar de /users;all=true pagina.

Conclusion

In deze tutorial hebben we gekeken naar hoe je door Angular-apps navigeert met behulp van RouterLink. Routing in Angular-apps is een beetje anders dan in traditionele webapplicaties omdat ze Single-Page zijn. Kennis van RouterLink en de functies ervan kan ontwikkelaars helpen bij het bouwen van robuuste routing.

Angular-apps gebruiken Node.js als hun runtime. Als je meer wilt leren over Node.js en hoe je Node.js-applicaties implementeert, kun je de volgende tutorials bekijken:

Veel plezier met programmeren!

author

Hark Labs

Auteur · CloudSigma

Preslav Dobrev is een creatief ontwerper bij CloudSigma, met de nadruk op een consistente bedrijfsidentiteit door middel van traditionele en innovatieve marketingkanalen. Hij is bedreven in het samenvoegen van artistieke visie met strategische marketing om impactvolle merkverhalen te creëren.

Reacties

Nog geen reacties. Wees de eerste.