欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

详解Angular依赖注入

程序员文章站 2022-06-10 08:32:49
概述依赖注入:设计模式依赖:程序里需要的某种类型的对象。依赖注入框架:工程化的框架注入器injector:用它的api创建依赖的实例provider:怎样创建?(构造函数,工程函数)object:组件...

概述

依赖注入:设计模式

依赖:程序里需要的某种类型的对象。

依赖注入框架:工程化的框架

详解Angular依赖注入

注入器injector:用它的api创建依赖的实例

provider:怎样创建?(构造函数,工程函数)

object:组件,模块需要的依赖

依赖性注入进阶=>angular中依赖注入框架提供父子层次注入型依赖

一、依赖注入

问题:person需要清楚的知道address和id的实现细节。

id和address重构后,person需要知道怎么重构。

项目规模扩大后,集成容易出问题。

person已经不知道id和address的细节了。

这是最简单的依赖注入。

问题是在main里还是需要知道细节。

思路:一级一级往上推,一直推到入口函数,入口函数来处理所有对象的构造。构造出来后提供给所有依赖的子模块的子类。

问题:入口函数很难维护。所以需要一个依赖注入框架帮助完成。

二、angular的依赖注入框架

从v5开始,因为速度慢,引入大量代码已弃用,改为injector.create。

reflectiveinjector :用于实例化对象和解析依赖关系。import { component ,reflectiveinjector } from "@angular/core";resolveandcreate接收一个provider数组,provider告诉injector应该怎样去构造这个对象。

injector:

injector相当于main函数,可以拿到所有依赖池子里的东西。

可以看到控制台打印出person信息。

详解Angular依赖注入

简写:

在angular框架中,框架做了很多事,在provider数组中注册的东西会自动注册到池子中。

angular默认都是单例,如果想要每次注入都是一个新的实例。有两种方法。

一,return的时候return一个方法而不是对象。

二、利用父子injector。

子注入器当中没有找到依赖的时候会去父注入器中找

以上就是详解angular依赖注入的详细内容,更多关于angular的资料请关注其它相关文章!