而服务和依赖注入很好,就像生活中的许多好东西,他们可以被滥用,成为一种反模式的有点。
为什么?因为在角变化检测是如何工作的。变化检测的角度有两种模式:默认的
模式和onPush
模式。onPush
是一种优化,当且仅当你使用input-driven组件,也称为表示组件。
换句话说,每当你注入一个服务组件,你阻止该组件使用优化onPush
变化检测模式。这是原因之一的最佳实践建议坚持容器组件(服务驱动组件绑定到特定的用例)和表示组件(input-driven那些可以使用和重用他们没有连接到任何服务,任何业务逻辑)。
表示组件创建越多,更多的可重用的代码,更可以提高变化检测。下次你注入服务在一个新的组件,再想想:我可以通过这个数据吗@Input
(s),而不是注射服务吗?
如果是这样的话,恭喜你:你阻止你的演示组件落入此反模式。