Heim > Web-Frontend > js-Tutorial > Wie implementiert man eine benutzerdefinierte RouteReuseStrategy, um bestimmte Routen in Angular zu trennen?

Wie implementiert man eine benutzerdefinierte RouteReuseStrategy, um bestimmte Routen in Angular zu trennen?

Patricia Arquette
Freigeben: 2024-10-25 08:37:02
Original
836 Leute haben es durchsucht

How to Implement a Custom RouteReuseStrategy to Detach Specific Routes in Angular?

Implementieren von RouteReuseStrategys ShouldDetach für bestimmte Routen in Angular 2

Hintergrund

Mit RouteReuseStrategy können Sie Angular anweisen, eine Komponente beizubehalten, anstatt sie beim Navigieren zu zerstören , um die Leistung zu optimieren und den Zustand der Komponente beizubehalten.

Problemstellung

Sie möchten den Zustand für Routen wie „/documents“, aber nicht für bestimmte Routen wie „/documents/:id“ speichern.

Lösung

Implementieren Sie eine benutzerdefinierte RouteReuseStrategy, indem Sie die integrierte RouteReuseStrategy erweitern und die entsprechenden Methoden überschreiben:

Import vom Angular-Router

<code class="typescript">import { RouteReuseStrategy } from '@angular/router';</code>
Nach dem Login kopieren

Erstellen Sie eine Klasse, die RouteReuseStrategy implementiert

<code class="typescript">export class CustomRouteReuseStrategy implements RouteReuseStrategy {</code>
Nach dem Login kopieren

Überschreiben Sie „shouldDetach“ für selektive Routenspeicherung

<code class="typescript">shouldDetach(route: ActivatedRouteSnapshot): boolean {
  return route.routeConfig?.path === '/documents/id';
}</code>
Nach dem Login kopieren

Stellen Sie die benutzerdefinierte Strategie im NgModule bereit

<code class="typescript">providers: [
  { provide: RouteReuseStrategy, useClass: CustomRouteReuseStrategy },
]</code>
Nach dem Login kopieren

Erklärung

  • shouldDetach: Steuert die Speicherung der Route. Geben Sie „true“ für Routen zurück, die Sie speichern möchten. Speichern Sie in diesem Szenario nur die Route „/documents“.
  • shouldAttach: Legt fest, wann eine gespeicherte Route wiederverwendet werden soll. Wenn diese Methode „true“ zurückgibt, verwendet Angular die Komponente wieder, anstatt sie neu zu erstellen. Wir überschreiben diese Methode in unserem Beispiel nicht.

Zusätzliche Hinweise:

  • Diese Implementierung speichert eine Instanz jeder qualifizierten Route im gesamten Benutzernetzwerk Sitzung.
  • Sie können weitere Anpassungen vornehmen, indem Sie „shouldDetach“ ändern, um zu steuern, welche Routen basierend auf Ihren Anforderungen gespeichert werden sollen.

Das obige ist der detaillierte Inhalt vonWie implementiert man eine benutzerdefinierte RouteReuseStrategy, um bestimmte Routen in Angular zu trennen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage