AngularJS 依赖注入

本文深入介绍了Angular中的依赖注入机制,包括其如何管理对象的生命周期、创建及缓存组件实例的过程。此外,还详细阐述了服务定义与实际创建的区别,以及单例对象的使用方式。

  依赖注入的作用是让框架帮你处理重要对象的生命周期的管理,不需要你显式地进行管理(对象构造和销毁)。这样能够让开发人员能够专注于应用的业务部分。

  Angular的injector子系统负责创建组件,解析依赖,并将其按需提供给其他组件。每个Angular应用都有一个injector。Angular在应用的启动阶段(bootstrap, 见AngularJS启动过程)会创建一个injector。

injector针对每个可注入组件只创建一个实例(调用injector.instantiate方法),创建之后会将其缓存,以备后续访问。如图:
                                 
 
  模块中定义了各种应用需要的服务,注意模块只是定义了服务,而并没有真正地创建它们,创建的只是一个等待注入器来执行的任务。真正的创建是通过注入器来完成的,当模块被加载到注入器的时候,注入器就会知道被加载的模块中定义了哪些任务,从而介入到这个创建相应服务的任务中来。另外,AngularJS全面实现了延迟初始化,也就是说,当这个对象没有被别人需要的时候,它是不会被创建的,对性能提高有一定帮助,加快了AngularJS启动速度。
  前边也说了,被注入的对象是单例对象,创建一次就可以被到处使用,使用的是同一对象,例如,你想在多个Controller中使用同一数据或逻辑,可以创建Service、Value、Constant等,注入到多个Controller中,它们是共享同一个服务对象。
  可用于依赖注入的组件:
    1、value
    2、factory
    3、service
    4、provider
    5、constant

  注入点:

    1、模块中定义的directive,factory,filter,provider,controller,animation、decorator。

    2、模块中的config函数,run函数。

转载于:https://www.cnblogs.com/shawnhu/p/8465798.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值