Winkeldynamisches Routing

Foto von Bruno Kelzer auf Unsplash

An dieser Stelle haben Sie vielleicht schon von dynamischen Komponenten gehört, die sehr nützlich sind, um dynamischere Anwendungen zu erstellen. Sie ermöglichen es uns, Komponenten abhängig von einer benutzerdefinierten Logik dynamisch zur Laufzeit zu laden, ohne eine Komponente erstellen zu müssen, die mit vielen ngIfs aufgebläht ist.

Wenn Sie noch nichts von Dynamic Components gehört haben, empfehle ich Ihnen, sich diesen Vortrag von Shmuela Jacobs bei Angular Connect anzusehen:

In meiner täglichen Arbeit baue ich ein System auf, das wie ein CRM ist, das verschiedene Produkte verwaltet, die alle einen gemeinsamen Kernteil haben, aber auch einige produktspezifische Dinge. Um Komponenten besser wiederverwendbar zu machen, habe ich hier und da dynamische Komponenten eingeführt, die abhängig von einem InjectionToken, der das aktuell aktive Produkt angibt, die richtige produktspezifische Komponente laden. Alles war schön und gut, bis ich versuchte, einen Step-Flow zu refaktorieren, der einige gemeinsame Schritte, aber auch einige produktspezifische Schritte hat. Dies war ein Problem, da der Step-Flow nicht nur komponentenbasiert, sondern auch von Routen abhängig ist. Das bedeutet, dass der Step-Flow eines Produkts einige zusätzliche Schritte, dh Routen, haben kann, die sich von den anderen unterscheiden. Auch die Anzahl der Schritte kann variieren.

Ein schmutziger Workaround wäre, eine feste Anzahl von Routen mit den Namen: step1, step2, step3 zu erstellen und dann die Komponente in jedem Schritt dynamisch zu laden, aber da die Anzahl der Schritte variiert, ist dies nicht möglich. Die richtige Lösung ist die Verwendung von Dynamic Routing .

Normalerweise definieren wir die Routen eines Moduls sehr statisch in einem Routing-Modul wie folgt:

Sobald das Modul geladen ist, gibt es keine Logik, die die statische Zuweisung der Routen stören kann, also gibt es immer die Home-Route und sonst nichts.

Beispiel

Schauen wir uns ein sehr vereinfachtes Beispiel an, das vielleicht nicht so viel Sinn macht, aber demonstrieren soll, wie dynamisches Routing funktioniert:

Wir wollen eine Anwendung mit folgenden Routen erstellen:

  • Startseite (statisch)
  • 404 Nicht gefunden (statisch)
  • Tag (dynamisch; nur zwischen 6:00 und 18:00 Uhr verfügbar)
  • Nacht (dynamisch; nur zwischen 18:00 und 06:00 Uhr verfügbar)
  • Geheimnis (dynamisch; 50/50-Chance)

Nachdem wir nun unsere Routen im Anbieterbereich definiert haben, können wir das useFactory- Anbieterdefinitionsobjekt verwenden. So kommen wir an einer Fabrik vorbei, die die Logik enthält, die entscheidet, wie die Routen aussehen sollen.

Kurze Erinnerung: Wenn Sie das Modul um 5:59 Uhr geladen haben und bis 6:01 Uhr warten, ist die Tagesroute nicht verfügbar, da die Routenkonfiguration bereits zuvor durchgeführt wurde. Das bedeutet, dass die Logik, die die Routen definiert, nur einmal passiert, wenn das Modul geladen wird.

Fazit

Ich hoffe, ich konnte Ihnen etwas Neues und Interessantes zeigen. Wenn Sie an Angular interessiert sind, sehen Sie sich meine anderen Blog-Beiträge zu Medium an.

Das vollständige Beispiel ist auf meinem GitHub verfügbar:

Suggested posts

Pronomen sind super gruselig

Es fällt mir plötzlich auf, wie so oft. Es ist wieder die Mitte. <Nein, nicht die im Pazifik, du Schlappschwanz, die auf dem Jahrmarkt> Jede Schlagzeile laut…..

Der Mord an Jordan Neely und das Problem des „patriotischen“ Rassismus

Können die USA den entscheidenden Schritt tun, rassistisches Verhalten nicht mit der Identität eines guten Amerikaners gleichzusetzen?

Der Mord an Jordan Neely und das Problem des „patriotischen“ Rassismus

[Alarm auslösen: Dieser Aufsatz enthält Screenshots von Menschen, die den Mörder von Jordan Neely loben.] Polizeibeamte haben endlich – und vielleicht widerstrebend – Daniel Penny, den Mann, der Jordan Neely bis zu seinem Tod gewürgt hat, wegen dieses Mordes angeklagt.

Related posts

„Der Marianengraben enthüllt: Enthüllung der schrecklichen verborgenen Wahrheiten des Abgrunds“

„Der Marianengraben enthüllt: Enthüllung der schrecklichen verborgenen Wahrheiten des Abgrunds“

Einleitung: Willkommen, mutige Leser, zu einer Reise, die uns in die dunkelsten Tiefen unseres Planeten führt. In diesem Blog tauchen wir in die rätselhafte Welt des Marianengrabens ein, decken seine verborgenen Geheimnisse auf und decken die gruseligen Wahrheiten auf, die unter seiner Oberfläche liegen.

Zwei Jahre im Design – Das Gute, das Schlechte und das Hässliche…

Zwei Jahre im Design – Das Gute, das Schlechte und das Hässliche…

„Hey Siri, spiel Me Dive von Olivia Dean.“ Es war Mai 2021, als ich mein Praktikum bei der Future Academy Africa in Akure, Nigeria, begann.

Dieses Bedrohungsarchiv: Band 7 Black Basta

Dieses Bedrohungsarchiv: Band 7 Black Basta

In der heutigen vernetzten Welt ist die Bedrohung durch Cyberangriffe größer denn je. Cyberkriminelle und nationalstaatliche Akteure versuchen ständig, Schwachstellen auszunutzen und wertvolle Daten zu stehlen, was ein erhebliches Risiko für Unternehmen jeder Größe darstellt.

Keine Passwörter mehr – wie Passkeys Ihr Passwort ersetzen

Keine Passwörter mehr – wie Passkeys Ihr Passwort ersetzen

Um Unklarheiten zu vermeiden, werden die folgenden Begriffe verwendet: Authentifikator; Das Mobiltelefon, das für die Anmeldung verwendet wird. Website; Die Website oder Anwendung, die der Benutzer verwendet, um den Anmeldeanforderungsdienst zu stellen; Der Anbieter, der die jeweilige Dienstleistung bereitstellt, z