Torna al blog

Navigazione con RouterLink, Navigate e NavigateByUrl in Angular Router

Navigazione con RouterLink, Navigate e NavigateByUrl in Angular Router

Introduzione

Angular le applicazioni sono molto comuni al giorno d'oggi. Sono costruite con il concetto di Single Page Applications (SPA). In tali applicazioni, il routing tra le pagine web è diverso rispetto ai siti web tradizionali poiché vengono utilizzati i componenti. In Angular, è necessario utilizzare RouterLink per la navigazione per instradare l'applicazione. RouterLink è una direttiva e fornisce Router.navigate e Router.navigateByURL metodi per navigare tra le classi dei componenti.

In questo tutorial, esamineremo RouterLink, Router.navigate, e Router.navigateByURL insieme a codice di esempio.

RouterLink

In HTML un collegamento viene normalmente inserito utilizzando un tag di ancoraggio <a> come di seguito:

Questo link di esempio reindirizzerà l'utente alla pagina /sample . Tuttavia, come menzionato sopra, un'applicazione a pagina singola (SPA) non ha pagine diverse a cui collegarsi. Al contrario, ha diverse viste o componenti da mostrare all'utente.

Se hai bisogno di consentire a un utente di navigare e cambiare la vista, dovrai utilizzare la direttiva RouterLink invece di href:

Questo RouterLink esempio condurrà l'utente al componente in /users/example. I diversi segmenti dell'URL possono anche essere passati in un array come nel seguente esempio:

Questi due esempi sono formattati in modo diverso, ma indirizzeranno comunque allo stesso componente in /users/example.

  • Percorso relativo

RouterLink consente di specificare gli URL relativi. Possiamo usare ../ per salire ai livelli superiori di navigazione. Di seguito è riportato come possiamo ottenere questo risultato:

Nell'esempio sopra, se l'utente si trova in /users/posts, la navigazione porterà l'utente a /posts/parent. È anche possibile specificare gli URL in modo relativo utilizzando ./, ../, o anche senza barra iniziale se necessario.

  • Parametri

Potrebbero esserci scenari in cui è necessario passare i dati tra le rotte. Un semplice esempio è quando l'utente compila il modulo e lo porti alla parte successiva del modulo per ulteriori dettagli.

Per passare i parametri, viene passato un oggetto che incapsula i dati nell'elenco dei segmenti URL:

Sopra, il Router navigherà verso /users;display=sample/xyz.

  • Outlet con nome

I router outlet con nome sono semplicemente router outlet dotati di nome. Diamo un'occhiata al codice per questo:

In questo esempio, il segmento xyz verrà posizionato nell'outlet chiamato side. Possiamo anche specificare più outlet con nome come di seguito:

Questo sostituirà il segmento first con abc e il segmento second viene sostituito con xyz.

Router

In Angular, il Router la classe viene utilizzata per definire le rotte e per navigare attraverso di esse. Questo si ottiene tramite due metodi: Router.navigate e Router.navigateByUrl. Entrambi questi metodi restituiscono una promise. Questa promise può avere tre valori: true, false, o null.

  • Il valore è true quando la navigazione va a buon fine.

  • Il valore è null quando non c'è navigazione.

  • E false se per qualche motivo la navigazione fallisce.

Se desideri avere questi metodi disponibili nella tua applicazione, devi prima importare la classe Router nella classe del tuo componente:

Successivamente, devi iniettare questo Router nel costruttore alle dipendenze:

Con questa configurazione, sei pronto a utilizzare i metodi Router.navigate e Router.navigateByUrl nella tua applicazione.

Router.navigate

Il metodo Router.navigate accetta un array di segmenti URL. Diamo un'occhiata a un esempio di base di codice Router.navigate:

Router.navigateByUrl

Infine, diamo un'occhiata a Router.navigateByUrl. Questo metodo è simile a Router.navigate ma invece di accettare segmenti URL, accetta una stringa che specifica l'URL. Questa navigazione deve essere assoluta e deve avere / all'inizio:

Il codice sopra reindirizzerà l'utente alla pagina /users;all=true.

Conclusione

In questo tutorial, abbiamo visto come navigare nelle app Angular utilizzando RouterLink. Il routing nelle app Angular è leggermente diverso rispetto alle tradizionali applicazioni web a causa della loro natura Single-Page. Conoscere RouterLink e le sue funzioni può aiutare gli sviluppatori a creare un routing robusto.

Le app Angular utilizzano Node.js come runtime. Se vuoi saperne di più su Node.js e su come distribuire le applicazioni Node.js, puoi dare un'occhiata ai seguenti tutorial:

Buona programmazione!

author

Hark Labs

Autore · CloudSigma

Preslav Dobrev è un designer creativo presso CloudSigma, con un focus su un'identità aziendale coerente attraverso l'uso di canali di marketing tradizionali e innovativi. È abile nel fondere la visione artistica con il marketing strategico per creare narrazioni di brand di grande impatto.

Commenti

Ancora nessun commento. Scrivi il primo.