架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 418|回复: 1

[Angular] Angular 18 系列(二十八)InjectionToken 简单介绍

[复制链接]
发表于 2024-12-20 16:02:20 | 显示全部楼层 |阅读模式
Angular是一个流行的前端JavaScript框架,它提供了一种强大的方式来构建单页应用程序(SPA)。在Angular中,依赖注入(Dependency Injection,DI)是一项关键的功能,它允许我们有效地管理应用程序中的依赖关系。Angular的依赖注入系统使用InjectionToken来实现某些特殊的依赖注入需求。在本文中,我将详细解释InjectionToken的作用,并提供示例以说明其在Angular应用中的实际用途。

什么是依赖注入?

在深入了解InjectionToken之前,让我们首先了解什么是依赖注入。依赖注入是一种设计模式,它允许我们将一个对象的依赖关系(例如,服务或配置)注入到另一个对象中,而不需要硬编码这些依赖关系。这样做的好处包括:

1. 可维护性:通过将依赖关系注入到组件中,我们可以轻松更改这些依赖项,而不必修改大量的代码。
2. 可测试性:我们可以轻松地为组件提供模拟的依赖项,以进行单元测试,而无需实际创建这些依赖项的实例。
3. 松耦合:依赖注入帮助我们实现松耦合,使各个组件之间的关系更加灵活。

在Angular中,依赖注入是内置的,Angular的依赖注入容器负责管理依赖项的创建和生命周期。

为什么需要InjectionToken?

有时候我们需要注入的依赖项不是一个类的实例,而是一个配置项、字符串、或其他非类的值。这就是 InjectionToken 的用武之地,它允许我们将非类的值作为依赖项注入到组件或服务中。

InjectionToken的作用

InjectionToken的作用是定义一个标识符,用于标识依赖项。它允许我们将任何值注入到Angular组件或服务中,而不仅仅是类的实例。通常情况下,我们会在应用程序中的某个地方创建InjectionToken,然后在需要注入该值的地方使用它。

以下是InjectionToken的主要作用:

1. 唯一性标识:InjectionToken是一个唯一的标识符,确保依赖项的唯一性。这对于防止依赖项的混淆或冲突非常重要。
2. 非类依赖注入:InjectionToken允许我们注入任何值,而不仅仅是类的实例。这在配置、常量、字符串等场景中非常有用。
3. 提供器配置:通过提供器配置,我们可以告诉Angular如何为InjectionToken提供依赖项的实例。这使得我们可以在不同的上下文中为InjectionToken提供不同的值。

现在,让我们通过一些示例详细说明InjectionToken的用法和作用。

注入应用配置

例如我们注入一个应用配置,包含 url 地址和环境名称,代码如下:


从构造函数注入,打印输出如下:

QQ截图20241220160139.png

参考:

https://open.alipay.com/portal/forum/post/138401031
https://dev.to/cagkanmert/angular-injectiontoken-dependency-injection-in-depth-2kfo




上一篇:.NET/C# 控制台服务注册至 Consul 服务发现
下一篇:调用阿里云 OpenAPI 接口获取服务器使用情况
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2025-2-17 13:36:08 | 显示全部楼层
InjectionToken 和 BehaviorSubject 结合构建全局动态值




码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2025-3-21 21:51

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表