Spec-Zone.ru › Angular

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

RouterLink
@paramrouterRouter
@paramrouteActivatedRoute
@paramtabIndexAttributestring | null | undefined
@paramrendererRenderer2
@paramelElementRef<any>
@paramlocationStrategyLocationStrategy | undefined
@returnsRouterLink

href

string | null

Представляет значение атрибута href, применённое к элементу-хозяину, если этот элемент является тегом <a>/<area> или совместимым пользовательским элементом. Для других тегов значение равно null.

href

string | null

target

string | undefined

Представляет атрибут target элемента-хозяина. Он используется только в том случае, если элемент-хозяин является тегом <a>/<area> или совместимым пользовательским элементом.

target

string | undefined

queryParams

Params | null | undefined

Передаётся в Router#createUrlTree как часть UrlCreationOptions.

queryParams

Params | null | undefined

fragment

string | undefined

Передаётся в Router#createUrlTree как часть UrlCreationOptions.

fragment

string | undefined

queryParamsHandling

QueryParamsHandling | null | undefined

Передаётся в Router#createUrlTree как часть UrlCreationOptions.

queryParamsHandling

QueryParamsHandling | null | undefined

state

{ [k: string]: any; } | undefined

Передаётся в Router#navigateByUrl как часть NavigationBehaviorOptions.

state

{ [k: string]: any; } | undefined

info

unknown

Передаётся в Router#navigateByUrl как часть NavigationBehaviorOptions.

info

unknown

relativeTo

ActivatedRoute | null | undefined

Передаётся в Router#createUrlTree как часть UrlCreationOptions. Укажите здесь значение, если не хотите использовать значение по умолчанию для routerLink, которым является текущий активированный маршрут. Обратите внимание, что значение undefined здесь приведёт к использованию значения по умолчанию routerLink.

relativeTo

ActivatedRoute | null | undefined

preserveFragment

boolean

Передаётся в Router#createUrlTree как часть UrlCreationOptions.

preserveFragment

boolean

skipLocationChange

boolean

Передаётся в Router#navigateByUrl как часть NavigationBehaviorOptions.

skipLocationChange

boolean

replaceUrl

boolean

Передаётся в Router#navigateByUrl как часть NavigationBehaviorOptions.

replaceUrl

boolean

browserUrl

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.


Экспортировано из

  • RouterModule

Примечания по использованию

В ссылке можно использовать абсолютные или относительные пути, задавать параметры запроса, управлять их обработкой и сохранять историю состояний навигации.

Относительные пути ссылок

Перед именем первого сегмента можно указать /, ./ или ../.

  • Если первый сегмент начинается с /, маршрутизатор ищет маршрут от корня приложения.
  • Если первый сегмент начинается с ./ или не начинается с косой черты, маршрутизатор выполняет поиск среди дочерних маршрутов текущего активированного маршрута.
  • Если первый сегмент начинается с ../, маршрутизатор поднимается на один уровень вверх по дереву маршрутов.

Настройка и обработка параметров запроса и фрагментов

Следующая ссылка добавляет параметр запроса и фрагмент в создаваемый 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API