Angular é um framework JavaScript de front-end popular que oferece uma maneira poderosa de construir aplicações de página única (SPAs). No Angular, a Injeção de Dependências (DI) é um recurso chave que nos permite gerenciar dependências de forma eficiente em nossas aplicações. O sistema de injeção de dependências da Angular usa o InjectionTokens para implementar certos requisitos especiais de injeção de dependência. Neste artigo, explicarei em detalhes o que o InjectionToken faz e fornecerei exemplos para ilustrar seu uso prático em aplicações Angular.
O que é injeção de dependência?
Antes de mergulhar no InjectionToken, vamos primeiro entender o que é a injeção de dependências. Injeção de dependências é um padrão de design que nos permite injetar dependências de um objeto (por exemplo, serviços ou configurações) em outro objeto sem codificar essas dependências fixamente. Os benefícios disso incluem:
1. Manutenibilidade: Ao injetar dependências em componentes, podemos facilmente alterar essas dependências sem precisar modificar código extenso. 2. Testabilidade: Podemos facilmente fornecer dependências simuladas para componentes a testes unitários sem realmente criar instâncias dessas dependências. 3. Acoplamento frouxo: A injeção de dependência nos ajuda a alcançar acoplamento frouxo, tornando as relações entre componentes individuais mais flexíveis.
No Angular, a injeção de dependências é incorporada, e o contêiner de injeção de dependências do Angular é responsável por gerenciar a criação e o ciclo de vida das dependências.
Por que você precisa de um InjectionToken?
Às vezes precisamos injetar dependênciasNão uma instância de uma classe, mas um item de configuração, string ou outro valor que não seja de classe。 É aí que entra o InjectionToken, permitindo injetar valores não de classe em componentes ou serviços como dependências.
O que o InjectionToken faz?
O papel de um InjectionToken é definir um identificador que identifica dependências. Ela nos permite injetar qualquer valor em um componente ou serviço Angular, não apenas uma instância de uma classe. Normalmente, criamos um InjectionToken em algum lugar da aplicação e o usamos onde precisamos injetar esse valor.
Aqui estão as principais funções do InjectionToken:
1. Identificação Única: O InjectionToken é um identificador único que garante a unicidade das dependências. Isso é importante para evitar confusão ou conflitos nas dependências. 2. Injeção de Dependência Não Classe: O InjectionToken nos permite injetar qualquer valor, não apenas uma instância de uma classe. Isso é útil em cenários como configurações, constantes, strings, etc. 3. Configuração do provedor: Por meio da configuração do provedor, podemos dizer ao Angular como fornecer uma instância da dependência para o InjectionToken. Isso nos permite fornecer diferentes valores para InjectionTokens em diferentes contextos.
Agora, vamos detalhar o uso e o papel do InjectionToken com alguns exemplos.
Injetar a configuração do app
Por exemplo, injetamos uma configuração de aplicação com o endereço URL e o nome do ambiente, e o código é o seguinte:
A partir da injeção do construtor, a impressão é a seguinte:
Referência:
O login do hiperlink está visível.
O login do hiperlink está visível. |