webentwicklung-frage-antwort-db.com.de

Verwenden von RouterLink und (Klicken) in derselben Schaltfläche

Hier geht es um eine bewährte Methode. Ist es empfehlenswert, RouterLink und (Klicken) in derselben Schaltfläche zu verwenden?.

<button routerLink="/link" (click)="back()">

Da wir die Routernavigationslogik in die back () -Methode setzen können, wie unten,

this.router.navigate(['/link']);

Alles, was ich dazu gefunden habe, ist dieses Artikel , in dem es nicht um die beste Vorgehensweise ging. Wenn einer besser ist als der andere, können Sie den Grund erklären.

7
dilantha111

Es folgen einige Beispiele, wie Sie mit routerLink und click herumspielen können.

Hoffe das wird helfen:

-> Wenn Sie zu bestimmten Seiten umleiten möchten, können Sie dies immer verwenden:

<a [routerLink]="['/my-book-listing']"> My Books</a>

-> Wenn Sie zu einer Seite umleiten möchten, aber Parameter wie ID senden möchten, verwenden Sie:

<a [routerLink]="['/my-book-details','3']">Book number 3</a>

-> Wenn es einen Fall gibt, in dem Sie Abfrageparameter zur Route senden müssen, können Sie verwenden

<a [routerLink]="['/search-this']" [queryParams]="{text:'sam',category:'social'}">Go Search</a>

-> Wenn vor dem Navigieren zur Seite eine Codelogik erforderlich ist, müssen Sie diese verwenden

<button (click)="createBook()">Create Book</button>

createBook(bookData){
   // Create Book logic
   this.router.navigate(['/my-book-listing']);
}

-> Sie können auch wie folgt vorgehen, es sei denn, Sie rufen die Funktion auf, um Variablen zu zerstören oder Daten zu speichern, die Seiten verlassen

<button (click)="showLoader()" [routerLink]="['/my-book-listing']">Create Book</button>

showLoader(){
  // showLoader logic
}
11
Sangwin Gawande

Ich bin mir nicht sicher, wie es am besten ist, aber ich würde sagen, dass es in Ordnung ist, RouterLink und (Klicken) in derselben Schaltfläche zu verwenden, solange Sie die Navigation nicht stören.

Die manuelle Navigation über this.router.navigate(['/link']); ist nicht optimal, da RouterLink Dinge wie "In neuem Tab öffnen" handhabt, während die Implementierung eines eigenen Handlers mit einem (Klick-) Handler nicht wünschenswert ist.

3
Joshua Chan

Ich würde mich für routerLink entscheiden, wenn ich einfach zum Beispiel zu /link Navigieren muss.

Aber wenn es eine Logik gibt, die vor dem Navigieren ausgeführt werden muss, würde ich mich für click() entscheiden.

Auch gibt es Fälle, in denen Sie bei der Routing-Navigation Abfrageparameter übergeben müssen, dann würde ich auch die Verwendung von click() vorziehen

2
Bhushan Babar