美文网首页
Angular的依赖注入

Angular的依赖注入

作者: 燕云长风 | 来源:发表于2019-05-27 17:24 被阅读0次

    你好,我是燕云长风
    寓意:结合李白著名的边塞诗《关山月》取【燕云长风】—— 长风几万里,吹度玉门关。

    依赖注入

    什么是依赖性注入?依赖性注入其实是一种设计模式。

    依赖性注入框架

    Angular中提供了非常完整的DI框架,有三个主要角色:

    Injector         Provider           Object  
    
        |                |                |
    
    令牌 (注入者)         构建             依赖
    

    Injector就是注入者,用它的API去创建你依赖的实例,但是怎么样创建呢?是通过构造函数创建,还是工厂函数创建或者其它方式。那就是Provider,它来告诉Injector如何去创建,那最后创建好的对象,其实就是你现在所处位置,比如组件、模块,它所需要的这种依赖,那么这个依赖其实就是你在程序中需要的某种类型的对象,依赖本身就是一种类型,你需要的是这种类型的对象。

    依赖性注入进阶

    Angular提供了层次结构型的依赖,父子结构型的。

    父子关系有一种特点,当它在子池子找不到它的依赖性,它会去父池子里面找,这也解释了为什么在Module中Provider的东西,你在Module当中的Component也能用,而且在父组件中Provider的东西,子组件也能用。

    依赖性注入的基础概念,就是如何不去关心我依赖对象的构建细节,把责任往上推,推到上级,直到入口函数,这样管理起来就非常麻烦,所以导致了依赖性注入框架的产生。

    在Angular中依赖性注入框架,是这样的一个构架,它有注入者,注入者去构建这样一个池子,那么池子里面是通过Provider数组去了解这些具体实例应该怎么去构建,它了解细节,它知道使用工厂方法还是构造函数或者其他方式提供。提供好了以后,通过Injector去get你的类型,类型就是provide的东西,可以是任意类型,Provider有useValue,useFactory,useClass,UseExisting等。

    我的个人博客

    我参与的系列项目

    1. NiceFish:美人鱼,这是一个微型Blog系统,前端基于Angular7.0 + PrimeNG7.1.0。(GVIP 码云最有价值的开源项目 3160 ☆)
    2. NiceFish-React:这是React版的实现,和 NiceFish Angular 版本保持风格一致。采用React Hooks 16.8.3 版本,使用TypeScript、Ant Design组件库以及Bootstrap v4.2.1 开发。 (7 ☆)
    3. OpenWMS-Frontend:OpenWMS项目前端基于 Angular 7.0 + PrimeNG 7.1.0。 (已推荐 199 ☆)

    我的社交主页

    燕云长风github

    今天的分享就到这里,祝大家顺利,工作愉快,天天开心。

    长风几万里,吹度玉门关。

    相关文章

      网友评论

          本文标题:Angular的依赖注入

          本文链接:https://www.haomeiwen.com/subject/vexktctx.html