RouterLink
При применении к элементу в шаблоне он превращает этот элемент в ссылку, которая запускает переход к маршруту. При переходе один или несколько компонентов маршрутизации открываются в одном или нескольких расположениях <router-outlet> на странице.
API
class RouterLink implements OnChanges ,OnDestroy {
constructor(router: Router, route: ActivatedRoute, tabIndexAttribute: string | null | undefined, renderer: Renderer2, el: ElementRef<any>, locationStrategy?: LocationStrategy | undefined): RouterLink;
get href(): string | null;
@Input() get target(): string | undefined;
@Input() get queryParams(): Params | null | undefined;
@Input() get fragment(): string | undefined;
@Input() get queryParamsHandling(): QueryParamsHandling | null | undefined;
@Input() get state(): { [k: string]: any; } | undefined;
@Input() get info(): unknown;
@Input() get relativeTo(): ActivatedRoute | null | undefined;
@Input() get preserveFragment(): boolean;
@Input() get skipLocationChange(): boolean;
@Input() get replaceUrl(): boolean;
@Input() browserUrl: InputSignal<string | UrlTree | undefined>;
@Input() set routerLink(value: string | readonly any[] | UrlTree | null | undefined);
readonly urlTree: UrlTree | null;
}
constructor
RouterLinkstring | null | undefined
RouterLink
href
string | nullПредставляет значение атрибута href, применённое к элементу-хозяину, если этот элемент является тегом <a>/<area> или совместимым пользовательским элементом. Для других тегов значение равно null.
href
string | nulltarget
string | undefinedПредставляет атрибут target элемента-хозяина. Он используется только в том случае, если элемент-хозяин является тегом <a>/<area> или совместимым пользовательским элементом.
target
string | undefinedqueryParams
Params | null | undefinedПередаётся в Router#createUrlTree как часть UrlCreationOptions.
queryParams
Params | null | undefinedfragment
string | undefinedПередаётся в Router#createUrlTree как часть UrlCreationOptions.
fragment
string | undefinedqueryParamsHandling
QueryParamsHandling | null | undefinedПередаётся в Router#createUrlTree как часть UrlCreationOptions.
queryParamsHandling
QueryParamsHandling | null | undefinedstate
{ [k: string]: any; } | undefinedПередаётся в Router#navigateByUrl как часть NavigationBehaviorOptions.
state
{ [k: string]: any; } | undefinedinfo
unknownПередаётся в Router#navigateByUrl как часть NavigationBehaviorOptions.
info
unknownrelativeTo
ActivatedRoute | null | undefinedПередаётся в Router#createUrlTree как часть UrlCreationOptions. Укажите здесь значение, если не хотите использовать значение по умолчанию для routerLink, которым является текущий активированный маршрут. Обратите внимание, что значение undefined здесь приведёт к использованию значения по умолчанию routerLink.
relativeTo
ActivatedRoute | null | undefinedpreserveFragment
booleanПередаётся в Router#createUrlTree как часть UrlCreationOptions.
preserveFragment
booleanskipLocationChange
booleanПередаётся в Router#navigateByUrl как часть NavigationBehaviorOptions.
skipLocationChange
booleanreplaceUrl
booleanПередаётся в Router#navigateByUrl как часть NavigationBehaviorOptions.
replaceUrl
booleanbrowserUrl
InputSignal<string | UrlTree | undefined>Передаётся в Router#navigateByUrl как часть NavigationBehaviorOptions.
routerLink
string | readonly any[] | UrlTree | null | undefinedКоманды, передаваемые в Router#createUrlTree, или объект UrlTree.
-
array: команды, передаваемые в
Router#createUrlTree. -
string: сокращённая форма массива команд, содержащего только эту строку, то есть
['/route'] -
UrlTree: объект
UrlTreeдля этой ссылки вместо создания его из команд и других входных данных, соответствующих свойствамUrlCreationOptions. -
null|undefined: фактически отключает
routerLink
urlTree
UrlTree | nullОписание
При применении к элементу в шаблоне он превращает этот элемент в ссылку, которая запускает переход к маршруту. При переходе один или несколько компонентов маршрутизации открываются в одном или нескольких расположениях <router-outlet> на странице.
Если задана конфигурация маршрутов [{ path: 'user/:name', component: UserCmp }], следующий код создаёт статическую ссылку на маршрут: <a routerLink="/user/bob">link to user component</a>
Для создания ссылки можно использовать динамические значения. Для динамической ссылки передайте массив сегментов пути, а затем параметры для каждого сегмента. Например, ['/team', teamId, 'user', userName, {details: true}] создаёт ссылку на /team/11/user/bob;details=true.
Несколько статических сегментов можно объединить в один термин и сочетать с динамическими сегментами. Например, ['/team/11/user', userName, {details: true}]
Входные данные, передаваемые ссылке, рассматриваются как изменение текущего URL. Например, предположим, что текущий URL — /user/(box//aux:team). Ссылка <a [routerLink]="['/user/jim']">Jim</a> создаёт URL /user/(jim//aux:team). Дополнительные сведения см. в разделе Router#createUrlTree.
Экспортировано из
Примечания по использованию
В ссылке можно использовать абсолютные или относительные пути, задавать параметры запроса, управлять их обработкой и сохранять историю состояний навигации.
Относительные пути ссылок
Перед именем первого сегмента можно указать /, ./ или ../.
- Если первый сегмент начинается с
/, маршрутизатор ищет маршрут от корня приложения. - Если первый сегмент начинается с
./или не начинается с косой черты, маршрутизатор выполняет поиск среди дочерних маршрутов текущего активированного маршрута. - Если первый сегмент начинается с
../, маршрутизатор поднимается на один уровень вверх по дереву маршрутов.
Настройка и обработка параметров запроса и фрагментов
Следующая ссылка добавляет параметр запроса и фрагмент в создаваемый URL:
<a [routerLink]="['/user/bob']" [queryParams]="{debug: true}"
fragment="education"> link to user component
</a>
По умолчанию директива создаёт новый URL с указанными параметрами запроса. В примере создаётся ссылка: /user/bob?debug=true#education.
Можно указать директиве другой способ обработки параметров запроса, задав в ссылке параметр queryParamsHandling. Допустимые значения:
-
'merge': объединить указанныеqueryParamsс текущими параметрами запроса. -
'preserve': сохранить текущие параметры запроса.
Например:
<a [routerLink]="['/user/bob']" [queryParams]="{debug: true}"
queryParamsHandling="merge"> link to user component
</a>
queryParams, fragment, queryParamsHandling, preserveFragment и relativeTo нельзя использовать, если входное значение routerLink — это UrlTree.
См. раздел UrlCreationOptions#queryParamsHandling.
Сохранение истории навигации
Можно передать значение state, которое будет сохранено в свойстве History.state браузера. Например:
<a [routerLink]="['/user/bob']" [state]="{tracingId: 123}">
link to user component
</a>
Используйте Router#currentNavigation, чтобы получить сохранённое значение состояния навигации Signal. Например, чтобы сохранить значение tracingId во время события NavigationStart:
// Get NavigationStart events
router.events.pipe(filter(e => e instanceof NavigationStart)).subscribe(e => {
const navigation = router.currentNavigation();
tracingService.trace({id: navigation.extras.state.tracingId});
}); Пользовательские элементы, совместимые с RouterLink
Чтобы пользовательский элемент работал с routerLink, он должен реализовывать атрибут href и указывать href в массиве статического свойства или геттера observedAttributes.
Super-powered by Google ©2010–2025.
Code licensed under an MIT-style License. Documentation licensed under CC BY 4.0.
https://angular.dev/api/router/RouterLink