Является ли хорошей практикой использование инструкции route.navigate в дочернем компоненте?

#javascript #angular

#javascript #angular

Вопрос:

Я пытаюсь перенаправить с дочернего компонента на другой компонент. Это безопасная практика или возникнут побочные эффекты.

Комментарии:

1. Я согласен с понижающим голосованием без комментариев, это действительно плохая практика. Кстати, если вы используете структуру smart / dumb components, у dumb components не должно быть побочных эффектов. Но навигация обычно не имеет состояния, поэтому вы не окажете никакого негативного влияния. Но подумайте о повторном использовании, вы уверены, что можете повторно использовать компонент, который выполняет перенаправление по определенному URL?

2. Большое вам спасибо. Я думаю, это отвечает на мой вопрос.

Ответ №1:

Это зависит от выбранной вами архитектуры.

Если вы хотите повторно используемый компонент для :

  • Ваше приложение

  • Другое приложение

  • Или для создания веб-компонента

Тогда вам нужно сохранить все действия в вашем родительском (@Output / @Input), а не в дочерних компонентах.

Но если вы уверены, что ее нельзя будет повторно использовать, то нет проблем с тем, чтобы иметь this.router.navigate() внутри дочерних компонентов.