CanActivate 与构造函数中的重定向

CanActivate vs redirect in constructor

我看到很多关于将 DI 用于 @CanActivate 装饰器的问题。我知道自定义注入器的实现以提供 Router.

我的问题更多是关于一般设计:使用 @CanActivate 与仅在等效组件构造函数内部重定向相比,有哪些优点(或缺点)。最后一个解决方案不好吗?

CanActivate 被特别设计成完全在组件之外。这就是为什么难以注入 Router 的原因。使用构造函数需要创建组件实例,然后由于重定向而立即销毁。