Inhaltsverzeichnis
Angular Route (Route)
Single Page Application (SPA)
Routing-Objekt
Routes-Routing-Array
RouterOutlet RouterOutlet
组件的内容显示在(Detaillierte Erläuterung des Routenroutings in Angular-outlet)下方
Router Router
RouterLink Router-Link
ActivatedRoute Aktivierte Route
在路由时传递数据
重定向路由
子路由
辅助路由
路由守卫(guard)
CanActivate/CanActiveChild:处理导航到某路由的情况
CanDeactivate:处理从当前路由离开的情况
Resolve:在路由激活之前获取路由数据
Heim Web-Frontend js-Tutorial Detaillierte Erläuterung des Routenroutings in Angular

Detaillierte Erläuterung des Routenroutings in Angular

Apr 15, 2021 am 10:39 AM
angular route 路由

Dieser Artikel führt Sie durch das Routing in Angular. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.

Detaillierte Erläuterung des Routenroutings in Angular

Angular Route (Route)

Wir können den Router als ein Ansichtsobjekt verstehen, das den Status der gesamten Anwendung steuert. Eine weitere Funktion des Routers besteht darin, ihm eine eindeutige URL zuzuweisen In jeder Ansicht können Sie diese URL verwenden, um zwischen Anwendungen zu einem bestimmten Ansichtsstatus zu springen. Eine Single-Page-Anwendung ist eigentlich eine Sammlung von Ansichtszuständen.

Empfohlene Tutorials: „angular Tutorial

Single Page Application (SPA)

Eine Single Page Application ist eine Anwendung, bei der die Hauptseite nur einmal geladen wird und nicht wiederholt aktualisiert wird, sondern nur einen Teil davon ändert Inhalt der Seite. Angular-Anwendungen sind Single-Page-Anwendungen, die Router in Angular verwenden, um den Inhalt der Seite basierend auf Benutzervorgängen zu ändern, ohne die Seite neu zu laden. Eine Single-Page-Anwendung kann als Sammlung von Ansichtszuständen verstanden werden.

Routing-Objekt

Detaillierte Erläuterung des Routenroutings in Angular

Routes-Routing-Array

Der Router muss zuerst konfiguriert werden, bevor er Routing-Informationen erhält, und verwenden Sie die Methode RouterModule.forRoot, um den Router zu konfigurieren. Wenn sich die URL des Browsers ändert, sucht der Router nach der entsprechenden Route und entscheidet auf dieser Grundlage, welche Komponente angezeigt werden soll.
Grundkonfiguration:

const appRoutes: Routes = [
  { path: 'common/a', component: AComponent },
  { path: 'common/b/:id', component: BComponent },
  { path: '**', component: NotFoundComponent}, // 定义通配符路由
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule],
  ...
})
Nach dem Login kopieren
RouterOutlet RouterOutlet

RouterOutlet ist eine Anweisung aus dem Routing-Modul und ihre Verwendung ähnelt einer Komponente. Es fungiert als Platzhalter, um eine Stelle in der Vorlage zu markieren, an der der Router die Komponente anzeigt, die an diesem Ausgang angezeigt werden soll.

 <h1 id="组件的内容显示在-Detaillierte-Erläuterung-des-Routenroutings-in-Angular-outlet-下方">组件的内容显示在(Detaillierte Erläuterung des Routenroutings in Angular-outlet)下方</h1>
 <Detaillierte Erläuterung des Routenroutings in Angular-outlet></Detaillierte Erläuterung des Routenroutings in Angular-outlet>
Nach dem Login kopieren
Router Router

Verwenden Sie das Router-Objekt zum Navigieren.

constructor(private Detaillierte Erläuterung des Routenroutings in Angular: Router) {}

toAComponent() {
    this.Detaillierte Erläuterung des Routenroutings in Angular.navigate([&#39;/common/a&#39;]);
    // 或 this.Detaillierte Erläuterung des Routenroutings in Angular.navigateUrl(&#39;common/a&#39;);
}
Nach dem Login kopieren

Die Route-Link-URL muss mit „/“ beginnen.

<a [Detaillierte Erläuterung des Routenroutings in AngularLink]="[&#39;/&#39;]">主页</a>
<a [Detaillierte Erläuterung des Routenroutings in AngularLink]="[&#39;/common/b&#39;, id]">B组件</a>
<Detaillierte Erläuterung des Routenroutings in Angular-outlet></Detaillierte Erläuterung des Routenroutings in Angular-outlet>
Nach dem Login kopieren
ActivatedRoute Aktivierte Route

Der Pfad und die Parameter der aktuell aktivierten Route können über den Routing-Dienst von ActivateRoute abgerufen werden.

  • Häufig verwendete Attribute:
    AttributeBeschreibung
    URLDas Observable-Objekt des Routing-Pfads ist ein String-Array, das aus verschiedenen Teilen im Routing-Pfad besteht.
    Daten Ein Observable, das die für die Route bereitgestellten Datenobjekte enthält. Enthält auch vom Resolve Guard aufgelöste Werte.
    paramMapEin Observable, das ein Kartenobjekt enthält, das aus den erforderlichen und optionalen Parametern der aktuellen Route besteht. Verwenden Sie diese Karte, um einen einzelnen Wert oder mehrere Werte von einem Parameter mit demselben Namen abzurufen.
    queryParamMapEin Observable, das ein Kartenobjekt mit Abfrageparametern enthält, die für alle Routen gültig sind. Verwenden Sie diese Karte, um einen einzelnen Wert oder mehrere Werte aus einem Abfrageparameter abzurufen.
在路由时传递数据
  • 在查询参数中传递数据

/common/b?id=1&name=2 => ActivatedRoute.queryParamMap

  • 在路由路径中传递数据

{path: /common/b/:id} => /commo/b/1 => ActivatedRoute.paramMap

  • 在路由配置中传递数据

{path: /common/b, component: BComponent, data: {id:“1”, title: “b”}}

  • 示例
constructor(
    private activatedRoute: ActivatedRoute
) { }

ngOnInit() {
   // 从参数中获取
    this.activatedRoute.queryParamMap.subscribe(params => {
      this.id = params.get(&#39;id&#39;);
    });

   // 或
  // this.activated.snapshot.queryParamMap.get(&#39;id&#39;);

    // 从路径中获取
    this.activatedRoute.paramMap.subscribe(params => {
      this.id = params.get(&#39;id&#39;);
    });

    this.activatedRoute.data.subscribe(({id,title}) => {

    });
}
Nach dem Login kopieren

snapshot: 参数快照,是一个路由信息的静态快照,抓取自组件刚刚创建完毕之后,不会监听路由信息的变化。如果确定一个组件不会从自身路由到自身的话,可以使用参数快照。

subscribe: 参数订阅,相当于一个监听器,会监听路由信息的变化。

重定向路由

在用户访问一个特定的地址时,将其重定向到另一个指定的地址。
配置重定向路由:

// 当访问根路径时会重定向到 home 路径
const appRoutes: Routes = [
  { path: &#39;&#39;, redirectTo: &#39;home&#39;, pathMatch: &#39;full&#39;},
  { path: &#39;home&#39;, component: HomeComponent}
];
Nach dem Login kopieren

子路由

子路由配置语法:

const appRoutes: Routes = [
  { 
    path: &#39;home&#39;, 
    component: HomeComponent,
    children: [
      { path: &#39;&#39;, component: AComponent},
      { path: &#39;b&#39;, component: BComponent}
    ]
  },
];
Nach dem Login kopieren

辅助路由

辅助路由又兄弟路由,配置语法:

// 路由配置
{path: &#39;xxx&#39;, component: XxxComponent, outlet:&#39;xxxlet&#39;},
{path: &#39;yyy&#39;, component: XxxComponent, outlet:&#39;yyylet&#39;}

// 使用
<Detaillierte Erläuterung des Routenroutings in Angular-outlet></Detaillierte Erläuterung des Routenroutings in Angular-outlet>
<Detaillierte Erläuterung des Routenroutings in Angular-outlet name="xxxlet"></Detaillierte Erläuterung des Routenroutings in Angular-outlet>

// 链接
<a [Detaillierte Erläuterung des Routenroutings in AngularLink]="[&#39;/home&#39;,{outlets:{xxxlet: &#39;xxx&#39;}}]">Xxx</a>
Nach dem Login kopieren

当点击Xxx链接时,主插座会显示’/home’链接所对应的组件,而xxxlet插座会显示xxx对应的组件。

路由守卫(guard)

CanActivate/CanActiveChild:处理导航到某路由的情况

当用户不满足这个守卫的要求时就不能到达指定路由。

export class DemoGuard1 implements CanActivate {

  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
    ...
    return true;
  }
}
Nach dem Login kopieren

CanDeactivate:处理从当前路由离开的情况

如果不满足这个守卫的要求就不能离开该路由。

// 泛型中 AComponent 代表要守卫的组件。
export class DemoGuard2 implements CanDeactivate<AComponent> {
 canDeactivate(component: AComponent): boolean {
   // 根据 component 的信息进行具体操作
   retturn true;
 }
}
Nach dem Login kopieren

Resolve:在路由激活之前获取路由数据

在进入路由时就可以立刻把数据呈现给用户。

@Injectable()
export AResolve implements Resolve<any> {
  resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
     const id = route.paramMap.get(&#39;id&#39;);
     // 可以根据路由中的信息进行相关操作
  }
}
Nach dem Login kopieren

最后,需要将路由守卫添加到路由配置中:

const appRoutes: Routes = [
  { 
    path: &#39;common/a&#39;, 
    component: AComponent,
    canActivate: [DemoGurad1],
    canDeactivate: [DemoGuard2],
    resolve: {data: AResolve}
   },
  { path: &#39;common/b/:id&#39;, component: BComponent },
  { path: &#39;**&#39;, component: NotFoundComponent}, // 定义通配符路由
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule],
  ...
})
Nach dem Login kopieren

更多编程相关知识,请访问:编程入门!!

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Routenroutings in Angular. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So installieren Sie Angular unter Ubuntu 24.04 So installieren Sie Angular unter Ubuntu 24.04 Mar 23, 2024 pm 12:20 PM

Angular.js ist eine frei zugängliche JavaScript-Plattform zum Erstellen dynamischer Anwendungen. Es ermöglicht Ihnen, verschiedene Aspekte Ihrer Anwendung schnell und klar auszudrücken, indem Sie die Syntax von HTML als Vorlagensprache erweitern. Angular.js bietet eine Reihe von Tools, die Sie beim Schreiben, Aktualisieren und Testen Ihres Codes unterstützen. Darüber hinaus bietet es viele Funktionen wie Routing und Formularverwaltung. In dieser Anleitung wird erläutert, wie Angular auf Ubuntu24 installiert wird. Zuerst müssen Sie Node.js installieren. Node.js ist eine JavaScript-Ausführungsumgebung, die auf der ChromeV8-Engine basiert und es Ihnen ermöglicht, JavaScript-Code auf der Serverseite auszuführen. In Ub sein

So implementieren Sie API-Routing im Slim-Framework So implementieren Sie API-Routing im Slim-Framework Aug 02, 2023 pm 05:13 PM

So implementieren Sie API-Routing im Slim-Framework Slim ist ein leichtes PHP-Mikroframework, das eine einfache und flexible Möglichkeit zum Erstellen von Webanwendungen bietet. Eines der Hauptmerkmale ist die Implementierung des API-Routings, das es uns ermöglicht, verschiedene Anfragen den entsprechenden Handlern zuzuordnen. In diesem Artikel wird die Implementierung des API-Routings im Slim-Framework vorgestellt und einige Codebeispiele bereitgestellt. Zuerst müssen wir das Slim-Framework installieren. Die neueste Version von Slim kann über Composer installiert werden. Öffnen Sie ein Terminal und

Winkelkomponenten und ihre Anzeigeeigenschaften: Nicht-Block-Standardwerte verstehen Winkelkomponenten und ihre Anzeigeeigenschaften: Nicht-Block-Standardwerte verstehen Mar 15, 2024 pm 04:51 PM

Das Standardanzeigeverhalten für Komponenten im Angular-Framework gilt nicht für Elemente auf Blockebene. Diese Designwahl fördert die Kapselung von Komponentenstilen und ermutigt Entwickler, bewusst zu definieren, wie jede Komponente angezeigt wird. Durch explizites Festlegen der CSS-Eigenschaft display kann die Anzeige von Angular-Komponenten vollständig gesteuert werden, um das gewünschte Layout und die gewünschte Reaktionsfähigkeit zu erreichen.

Java Apache Camel: Aufbau einer flexiblen und effizienten serviceorientierten Architektur Java Apache Camel: Aufbau einer flexiblen und effizienten serviceorientierten Architektur Feb 19, 2024 pm 04:12 PM

Apache Camel ist ein auf Enterprise Service Bus (ESB) basierendes Integrationsframework, das problemlos unterschiedliche Anwendungen, Dienste und Datenquellen integrieren kann, um komplexe Geschäftsprozesse zu automatisieren. ApacheCamel verwendet eine routenbasierte Konfiguration, um Integrationsprozesse einfach zu definieren und zu verwalten. Zu den Hauptmerkmalen von ApacheCamel gehören: Flexibilität: ApacheCamel kann problemlos in eine Vielzahl von Anwendungen, Diensten und Datenquellen integriert werden. Es unterstützt mehrere Protokolle, einschließlich HTTP, JMS, SOAP, FTP usw. Effizienz: ApacheCamel ist sehr effizient und kann eine große Anzahl von Nachrichten verarbeiten. Es verwendet einen asynchronen Nachrichtenmechanismus, der die Leistung verbessert. Erweiterbar

Tokenbasierte Authentifizierung mit Angular und Node Tokenbasierte Authentifizierung mit Angular und Node Sep 01, 2023 pm 02:01 PM

Die Authentifizierung ist einer der wichtigsten Teile jeder Webanwendung. In diesem Tutorial werden tokenbasierte Authentifizierungssysteme und ihre Unterschiede zu herkömmlichen Anmeldesystemen erläutert. Am Ende dieses Tutorials sehen Sie eine voll funktionsfähige Demo, die in Angular und Node.js geschrieben wurde. Traditionelle Authentifizierungssysteme Bevor wir zu tokenbasierten Authentifizierungssystemen übergehen, werfen wir einen Blick auf traditionelle Authentifizierungssysteme. Der Benutzer gibt seinen Benutzernamen und sein Passwort im Anmeldeformular ein und klickt auf „Anmelden“. Nachdem Sie die Anfrage gestellt haben, authentifizieren Sie den Benutzer im Backend, indem Sie die Datenbank abfragen. Wenn die Anfrage gültig ist, wird eine Sitzung mit den aus der Datenbank erhaltenen Benutzerinformationen erstellt und die Sitzungsinformationen werden im Antwortheader zurückgegeben, sodass die Sitzungs-ID im Browser gespeichert wird. Bietet Zugriff auf Anwendungen, die unterliegen

So verwenden Sie Routing in ThinkPHP6 So verwenden Sie Routing in ThinkPHP6 Jun 20, 2023 pm 07:54 PM

ThinkPHP6 ist ein leistungsstarkes PHP-Framework mit praktischen Routing-Funktionen, mit dem sich die URL-Routing-Konfiguration problemlos implementieren lässt. Gleichzeitig unterstützt ThinkPHP6 auch mehrere Routing-Modi wie GET, POST, PUT, DELETE usw. In diesem Artikel wird erläutert, wie Sie ThinkPHP6 für die Routing-Konfiguration verwenden. 1. GET-Methode im ThinkPHP6-Routing-Modus: Die GET-Methode ist eine Methode zum Abrufen von Daten und wird häufig für die Seitenanzeige verwendet. In ThinkPHP6 können Sie Folgendes verwenden

Wie verwende ich Routing, um Animationseffekte für den Seitenwechsel in einem Vue-Projekt anzupassen? Wie verwende ich Routing, um Animationseffekte für den Seitenwechsel in einem Vue-Projekt anzupassen? Jul 21, 2023 pm 02:37 PM

Wie verwende ich Routing, um Animationseffekte für den Seitenwechsel in einem Vue-Projekt anzupassen? Einführung: Im Vue-Projekt ist Routing eine der Funktionen, die wir häufig verwenden. Der Wechsel zwischen Seiten kann durch Routing erfolgen und sorgt so für eine gute Benutzererfahrung. Um den Seitenwechsel lebendiger zu gestalten, können wir dies durch Anpassen von Animationseffekten erreichen. In diesem Artikel wird erläutert, wie Sie mithilfe des Routings den Seitenwechsel-Animationseffekt im Vue-Projekt anpassen. Erstellen Sie ein Vue-Projekt. Zuerst müssen wir ein Vue-Projekt erstellen. Mit VueCLI können Sie schnell erstellen

Implementierungsmethode und Erfahrungszusammenfassung zur flexiblen Konfiguration von Routing-Regeln in PHP Implementierungsmethode und Erfahrungszusammenfassung zur flexiblen Konfiguration von Routing-Regeln in PHP Oct 15, 2023 pm 03:43 PM

Implementierungsmethode und Erfahrungszusammenfassung der flexiblen Konfiguration von Routing-Regeln in PHP Einführung: In der Webentwicklung sind Routing-Regeln ein sehr wichtiger Teil, der die entsprechende Beziehung zwischen URL und bestimmten PHP-Skripten bestimmt. Bei der herkömmlichen Entwicklungsmethode konfigurieren wir normalerweise verschiedene URL-Regeln in der Routing-Datei und ordnen die URL dann dem entsprechenden Skriptpfad zu. Da jedoch die Komplexität des Projekts zunimmt und sich die Geschäftsanforderungen ändern, wird es sehr umständlich und unflexibel, wenn jede URL manuell konfiguriert werden muss. Also, wie man es in PHP implementiert

See all articles