Angular14提供了一些非常有趣的特性:类型化形式(typedforms)、独立组件(standalonecomponents),而本文要介绍的,也就是所谓的构造器阶段(constructor阶段)使用注入功能的能力。什么是注入函数inject()函数将InjectionToken作为参数,并从当前活动的注入器返回该InjectionToken的值。简而言之,这是另一种不使用构造函数注入但仍然能够获取依赖项的方法。看一个具体的例子:什么是构造器阶段构造器阶段是指构造函数作用域(constructorfunctionscope)和字段初始化器(fieldinitializers)。这意味着inject()函数不能在@Input()setter或任何其他函数或生命周期钩子中调用。下图中titlesetter中的view调用了inject函数,会出现Angular编译错误。使用注入函数降低组件复杂性假设我们需要在组件中添加一个路由器路径参数以从API获取实体详细信息。让我们看看在不使用inject()函数(或任何其他外观服务)的情况下会发生什么。上面的例子是传统的基于构造函数的注入实现,它存在三个缺陷:Component依赖于HttpClient(或其他执行API调用的门面服务)。该组件依赖于ActivatedRoute。组件实现中有了业务逻辑,应该只负责显示UI,不用担心如何获取数据。使用注入功能,改进实现:在上面的代码中,组件忽略了从服务器获取实体所需的内容。它所知道的是它现在有一个名为entity$的属性,该属性包含一个Observable
