Routen-Metadaten
Zusätzliche Metadaten, die der generierten Routenkonfiguration für jede Route hinzugefügt werden können, können mit dem Typ RouteMeta
erstellt werden. Hier können der Seitentitel, alle notwendigen Guards, Resolver, Provider und mehr definiert werden.
Definieren von Routen-Metadaten
import { Component } from '@angular/core';
import { RouteMeta } from '@analogjs/router';
import { AboutService } from './about.service';
export const routeMeta: RouteMeta = {
title: 'About Analog',
canActivate: [() => true],
providers: [AboutService],
};
@Component({
standalone: true,
template: `
<h2>Hello Analog</h2>
Analog is a meta-framework on top of Angular.
`,
})
export default class AboutPageComponent {
private readonly service = inject(AboutService);
}
Umleitungsrouten
Routen können nur zu dem Zweck definiert werden, auf eine andere Route umzuleiten.
Um eine Umleitungsroute zu erstellen, füge die Eigenschaften redirectTo
und pathMatch
zum Objekt routeMeta
in der Routendatei hinzu:
// src/app/pages/index.page.ts
import { RouteMeta } from '@analogjs/router';
export const routeMeta: RouteMeta = {
redirectTo: '/home',
pathMatch: 'full',
};
Das obige Beispiel ist eine Umleitung von der Route /
zur Route /home
.
Umleitungsrouten-Dateien sollten keine Komponente exportieren.
Es ist auch möglich, verschachtelte Umleitungsrouten zu definieren. Für die folgende Dateistruktur:
src/
└── app/
└── pages/
└── cities/
├── index.page.ts
├── new-york.page.ts
└── san-francisco.page.ts
Und die folgende routeMeta
-Definition in der Datei src/app/pages/cities/index.page.ts
:
import { RouteMeta } from '@analogjs/router';
export const routeMeta: RouteMeta = {
redirectTo: '/cities/new-york',
pathMatch: 'full',
};
Leitet /cities
zu /cities/new-york
weiter.
Verschachtelte Weiterleitungen erfordern immer einen absoluten Pfad.
Routen-Meta-Tags
Der Typ RouteMeta
hat eine Eigenschaft meta
, die dazu verwendet werden kann, eine Liste von Meta-Tags für jede Route zu definieren:
import { Component } from '@angular/core';
import { RouteMeta } from '@analogjs/router';
import { AboutService } from './about.service';
export const routeMeta: RouteMeta = {
title: 'Refresh every 30 sec',
meta: [
{
httpEquiv: 'refresh',
content: '30',
},
],
};
@Component({
standalone: true,
template: `
<h2>Hello Analog</h2>
See you again in 30 seconds.
`,
})
export default class RefreshComponent {}
Das obige Beispiel setzt den Meta-Tag <meta http-equiv="refresh" content="30">
, der den Browser zwingt, die Seite alle 30 Sekunden zu aktualisieren.
Weitere Informationen über mögliche Standard-Meta-Tags findest du in der offiziellen [Dokumentation] (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta).
Open-Graph-Meta-Tags
Die oben genannte Eigenschaft meta
kann auch verwendet werden, um OpenGraph-Meta-Tags für SEO- und Social-Apps-Optimierungen zu definieren:
export const routeMeta: RouteMeta = {
meta: [
{
name: 'description',
content: 'Description of the page',
},
{
name: 'author',
content: 'Analog Team',
},
{
property: 'og:title',
content: 'Title of the page',
},
{
property: 'og:description',
content: 'Some catchy description',
},
{
property: 'og:image',
content: 'https://somepage.com/someimage.png',
},
],
};
Dieses Beispiel ermöglicht es sozialen Anwendungen wie Facebook oder Twitter, Titel, Beschreibungen und Bilder optimal anzuzeigen.