Поиск по сайту
Ctrl + K
Вопросы по Angular

Что такое активированный маршрут?

В Angular, активированный маршрут (ActivatedRoute) представляет собой сервис, который предоставляет доступ к информации о текущем маршруте, а также о параметрах, таких как параметры маршрута и параметры запроса. Это особенно полезно, когда у вас есть динамические маршруты, которые зависят от каких-либо значений.

Основные понятия

1. Что такое маршрутизация в Angular?

Маршрутизация позволяет вам управлять переходами между компонентами в приложении Angular, предоставляя возможность загружать различные компоненты на основе текущего URL. Это значит, что пользователи могут перемещаться по вашему приложению, и Angular будет подгружать соответствующие компоненты.

2. Что такое ActivatedRoute?

ActivatedRoute — это класс из пакета @angular/router, который содержит информацию о маршруте, который активен в данный момент. Вы можете получить к нему доступ в любом компоненте, подключив его через DI (инъекцию зависимостей).

Как использовать ActivatedRoute?

Шаг 1: Импортировать ActivatedRoute

Сначала вам нужно импортировать ActivatedRoute в ваш компонент:

import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';

@Component({
  selector: 'app-example',
  templateUrl: './example.component.html',
})
export class ExampleComponent implements OnInit {
  private id: string;

  constructor(private route: ActivatedRoute) {}

  ngOnInit(): void {
    // Получение параметра ID из маршрута
    this.route.paramMap.subscribe(params => {
      this.id = params.get('id') || 'Нет ID';
      console.log(`Полученный ID: ${this.id}`);
    });
  }
}

Шаг 2: Определите маршруты

Теперь давайте определим маршруты в вашем app-routing.module.ts:

import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { ExampleComponent } from './example/example.component';

const routes: Routes = [
  { path: 'example/:id', component: ExampleComponent },
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }

В этом примере мы определили маршрут, который принимает параметр id. Когда пользователь переходит по этому маршруту, ExampleComponent будет загружен, и мы сможем получить значение id.

Шаг 3: Использовать параметры запроса

Вы также можете получать параметры запроса, используя queryParamMap:

this.route.queryParamMap.subscribe(queryParams => {
  const filter = queryParams.get('filter') || 'Нет фильтра';
  console.log(`Полученный фильтр: ${filter}`);
});

Ниже приведен пример URL с параметрами запроса: http://example.com/example/1?filter=active. В данном случае 1 будет значением id, а active будет значением filter.

Заключение

Использование ActivatedRoute в Angular позволяет динамически адаптировать ваш интерфейс в зависимости от маршрута. Это мощный инструмент для создания интерактивных приложений, которые реагируют на изменения состояния URL. Вы можете использовать его для получения параметров маршрута, параметров запроса и данных, связанных с текущим состоянием маршрута.