Это зависит от выбранной вами архитектуры.
Если вы хотите многократно используемый компонент для:
Затем необходимо сохранить все действия в родительском элементе (@ Output / @ Input), а не у детей.
Но Если вы уверены, что он не будет использоваться повторно, тогда нет проблем с наличием this.router.navigate()
внутри детей.