Определить был переход или обновление страницы?

Для определения, был ли выполнен переход или обновление страницы в Angular, необходимо использовать функциональность, предоставляемую Angular Router.

Angular Router - это маршрутизатор, который управляет навигацией веб-приложения Angular. Он позволяет определять маршруты и запускать соответствующие компоненты при переходе по определенным URL-адресам.

Для определения перехода или обновления страницы можно использовать событие NavigationStart, предоставляемое Angular Router. Это событие происходит при начале навигации в приложении.

Пример использования события NavigationStart для определения перехода или обновления страницы в Angular:

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

@Component({
  selector: 'app-my-component',
  templateUrl: './my-component.component.html',
  styleUrls: ['./my-component.component.css']
})
export class MyComponent implements OnInit {

  constructor(private router: Router) { }

  ngOnInit() {
    this.router.events.subscribe(event => {
      if (event instanceof NavigationStart) {
        // Обработка события NavigationStart
        if (event.navigationTrigger === 'popstate') {
          // Обновление страницы (нажатие кнопки "Назад" или "Вперед" в браузере)
          console.log('Страница была обновлена');
        } else {
          // Переход по ссылке или вызов метода navigate() в коде
          console.log('Был выполнен переход');
        }
      }
    });
  }

}

В данном примере мы импортируем классы Router и NavigationStart из пакета '@angular/router'. В конструкторе мы инжектируем экземпляр класса Router. Затем в методе ngOnInit мы подписываемся на событие NavigationStart, используя метод subscribe(). Внутри этого обработчика мы проверяем значение свойства navigationTrigger у объекта события NavigationStart. Если значение равно 'popstate', это означает, что страница была обновлена (например, пользователь нажал кнопку "Назад" или "Вперед" в браузере). В противном случае, это означает, что был выполнен переход по ссылке или вызван метод navigate() в коде.

Обработка события NavigationStart позволяет нам определить, был ли выполнен переход или обновление страницы в Angular. Это полезно для выполнения определенных действий в зависимости от типа навигации, например, загрузки дополнительных данных при переходе или переинициализации компонента при обновлении страницы.