Angular Routing с QueryParams: подробное руководство

В приложениях Angular маршрутизация является важной функцией навигации между различными компонентами и страницами. Модуль Angular Router предоставляет мощный механизм управления маршрутизацией, включая возможность передачи параметров запроса в URL-адресе. В этой статье мы рассмотрим различные методы использования queryParams с функцией router.navigate() Angular, сопровождаемые примерами кода.

Метод 1: базовое использование
Самый простой способ использовать queryParams — передать объект функции router.navigate(). Каждая пара ключ-значение в объекте представляет параметр запроса.

import { Router } from '@angular/router';
constructor(private router: Router) {}
// Example usage
navigateWithQueryParams() {
  const queryParams = { page: 1, sortBy: 'name' };
  this.router.navigate(['/target-route'], { queryParams });
}

Метод 2: объединение QueryParams
Если вы хотите объединить текущие параметры запроса с новыми при навигации, вы можете использовать опцию queryParamsHandling.

navigateWithMergedQueryParams() {
  const newQueryParams = { filter: 'active' };
  this.router.navigate(['/target-route'], { queryParams: newQueryParams, queryParamsHandling: 'merge' });
}

Метод 3. Удаление QueryParams
Чтобы удалить определенные параметры запроса во время навигации, вы можете использовать параметр queryParamsHandling со стратегией «слияния».

navigateWithRemovedQueryParams() {
  const queryParamsToRemove = ['sortBy'];
  this.router.navigate(['/target-route'], { queryParamsHandling: 'merge', queryParams: { }, preserveFragment: true });
}

Метод 4: сохранение фрагмента
По умолчанию при навигации с помощью queryParams фрагментная часть URL-адреса отбрасывается. Чтобы сохранить фрагмент, используйте параметр saveFragment.

preserveFragmentExample() {
  const queryParams = { page: 1 };
  this.router.navigate(['/target-route'], { queryParams, preserveFragment: true });
}

Метод 5: относительная навигация
В некоторых случаях вам может потребоваться навигация относительно текущего маршрута. Параметр относительныйTo позволяет добиться этого.

relativeNavigationExample() {
  const queryParams = { page: 1 };
  this.router.navigate(['../', 'target-route'], { queryParams, relativeTo: this.route });
}

В этой статье мы рассмотрели несколько методов использования queryParams с функцией router.navigate() Angular. Мы рассмотрели базовое использование, объединение параметров запроса, удаление параметров запроса, сохранение фрагментов и относительную навигацию. Используя эти методы, вы можете создавать динамические и интерактивные приложения Angular с гибкой навигацией. Поэкспериментируйте с этими методами в своих проектах и ​​используйте весь потенциал маршрутизации Angular.