• 【2019-11-20】服务与DI简介


    DI -- dependency injection

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

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

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

    提供服务

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

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

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

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

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

  • 相关阅读:
    luogu P3368 【模板】树状数组 2
    dp
    vijos 羽毛
    luogu tyvj 纪念品分组
    codevs 1259 最大正方形子矩阵 WD
    python 序列化之pickle模块 json模块
    python 类的进阶
    python 面向对象与类的基本知识
    python 异常处理
    python time模块 sys模块 collections模块 random模块 os模块 序列化 datetime模块
  • 原文地址:https://www.cnblogs.com/QQ-lala/p/11896783.html
Copyright © 2020-2023  润新知