zoukankan      html  css  js  c++  java
  • 【2019-11-20】服务与DI简介

    DI -- dependency injection

    当Angular创建组件类的新实例时,它会通过查看该组件类的构造函数,来决定该组件依赖哪些服务或者其他依赖项 ,比如上面的heroService

    当Angular发现某个组件依赖某个服务时,它会首先坚持是否该注入器中已经有了那个服务的任何现有实例。如果所请求的服务尚不存在,注入器会使用以前注册的服务提供商制作一个,并把它加入注入器中,然后把该服务返回给Angular

    当所有请求的服务已解析并返回时,Angular可以用这些服务实例为参数,调用该组件的构造函数

    提供服务

    对于要用到的任何服务,你必须至少注册一个提供商。

    ①服务可以在自已的元数据中把自已注册为提供商,这样可以让自已随处可用

    在根一级提供服务时,Angular会创建一个单一的共享实例,并且把它注入到任何想要它的类中。这种在@Injectable元数据注册提供商的方式还可以让angular能够通过移除那些从未被用过的服务来优化大小

    ②可以在特定的模块注册提供商,该服务的同一个实例将会对该NgModule中的所有组件可用

    ③也可以在组件级注册提供商,你会为该组件的每一个新实例提供该服务的一个新实例

  • 相关阅读:
    bzoj3687
    bzoj1930
    splay启发式合并
    学习笔记::启发式合并
    bzoj1798
    java提高篇(三)-----理解java的三大特性之多态
    java提高篇(二)-----理解java的三大特性之继承
    队列的顺序实现(循环数组)与链式实现
    java提高篇(一)-----理解java的三大特性之封装
    设计模式读书笔记-----解释器模式
  • 原文地址:https://www.cnblogs.com/QQ-lala/p/11896783.html
Copyright © 2011-2022 走看看