In AngularJS wir (mit ui-Router) zu tun, wenn ein Zustand definieren:Hat Angular Routen oder Zustände wie UIRouter benannt?
.state('myState', {
url: 'some-user-friendly-url'
...
})
So haben wir einen Weg url
und name
einzustellen. Es ist nett zu haben, also machen wir uns keine Gedanken über die URL und erinnern uns nur an den Namen des Staates, wenn wir $state.go('myState')
verwenden wollen.
Ich beginne mit Angular, aber in seinem nativen Router gibt es path
, die mit Direktive verwendet wird, um zu einer Route zu gehen und in der gleichen Zeit verwenden Sie es als die URL.
Hat der native Router eine Lösung für diesen Fall? Oder ist es wieder besser, mit UI-Router für Angular zu gehen?
Danke für die Antwort, ich weiß nicht, ob es nur meine Angewohnheit ist, aber ich denke, es ist super schön, wenn Sie Navigation und die Art, wie Sie denken über Staaten und URLs, die in der Browser-Adressleiste angezeigt werden. Zweitens ist es schön in Bezug auf Code-Basis-Unterstützung, wenn ich Zustand und verwenden Sie es in HTML, Komponenten, um nach Namen zu navigieren, ich glaube nicht, wie URL aussieht, kann ich URL ohne Schmerzen ändern, falls ich benutze URL für Navigationslogik Ich muss jede Verwendung aktualisieren ... – BotanMan
Versteh mich nicht falsch - ich verstehe die Vorteile der Scheidung Staat von URL, aber obwohl das eine großartige Funktion von UI Router war, glaube ich, UI Router übernahm AngularJS mehr wegen der Mängel der eingebauten ngRoute als wegen dieser Eigenschaft speziell. Ich weiß, dass frühe Implementierungen des neuen Routers Routen benannt haben, aber sie haben es während eines der Umschreibungen herausgerissen - ich denke, für die meisten Anwendungsfälle waren die Namen mit den URLs überflüssig. – snorkpete
Der Angular Router ist sehr gut darin, Routen mit einzelnen Teilen zu erstellen und/oder Routing relativ zur aktuellen Komponente vorzunehmen, damit sich Ihre URLs leicht an Änderungen in Ihrer Komponentenstruktur anpassen können. Es ist nicht so, dass du immer komplette URLs in deiner 'router.navigate()' Methode erstellen musst, also gibt es viel mehr Flexibilität, als du vielleicht zuerst denkst – snorkpete