angular 服务

说明

angular 把数据与业务进行了抽离,希望我们能够单一的专注于数据的处理和数据的展示。所以就建立了服务的概念。这里的服务不是后台中的服务,本质是函数的封装。封装很多方法,对数据进行处理和返回。

官方文档

服务的说明

1.服务是一个广义的概念,它包括应用所需的任何值、函数或特性。狭义的服务是一个明确定义了用途的类。它应该做一些具体的事,并做好。
2.Angular 把组件和服务区分开,以提高模块性和复用性。 通过把组件中和视图有关的功能与其它类型的处理分离开,你可以让组件类更加精简、高效。
3.理想情况下,组件的工作只管用户体验,而不用顾及其它。 它应该提供用于数据绑定的属性和方法,以便作为视图(由模板渲染)和应用逻辑(通常包含一些模型的概念)的中介者。
4.组件应该把诸如从服务器获取数据、验证用户输入或直接往控制台中写日志等工作委托给各种服务。通过把各种处理任务定义到可注入的服务类中,你可以让它被任何组件使用。 通过在不同的环境中注入同一种服务的不同提供者,你还可以让你的应用更具适应性。
5.Angular 不会强迫你遵循这些原则。Angular 只会通过依赖注入来帮你更容易地将应用逻辑分解为服务,并让这些服务可用于各个组件中。

依赖注入说明

1 DI 被融入 Angular 框架中,用于在任何地方给新建的组件提供服务或所需的其它东西。 组件是服务的消费者,也就是说,你可以把一个服务注入到组件中,让组件类得以访问该服务类。
2 在 Angular 中,要把一个类定义为服务,就要用 @Injectable() 装饰器来提供元数据,以便让 Angular 可以把它作为依赖注入到组件中。 同样,也要使用 @Injectable() 装饰器来表明一个组件或其它类(比如另一个服务、管道或 NgModule)拥有一个依赖。
3 注入器是主要的机制。Angular 会在启动过程中为你创建全应用级注入器以及所需的其它注入器。你不用自己创建注入器。
4 该注入器会创建依赖、维护一个容器来管理这些依赖,并尽可能复用它们。
提供者是一个对象,用来告诉注入器应该如何获取或创建依赖。
5 你的应用中所需的任何依赖,都必须使用该应用的注入器来注册一个提供者,以便注入器可以使用这个提供者来创建新实例。 对于服务,该提供者通常就是服务类本身。

个人理解

服务,是专门用来处理数据业务的。需要和依赖注入共同使用(依赖注入是后台概念)。那么我们在写业务的时候,可以按照接口创建服务列表,然后视图按照模块划分,注入数据展示即可。

命令

ng g s xxx  

服务示例

import { Injectable } from '@angular/core';

//Injectable装饰器
@Injectable({
  //作用域设定,'root'表示默认注入到AppModule中去,也就是根模块
  //null 表示不设定区域,在哪里用就在哪里注入
  //也可以是某个模块名字(这一般就是懒加载模式了)
  providedIn: 'root'
})
export class TestService {

  constructor() { }
}

注意:
1 需要手动在appmodule里注册

例子讲解

1 使用ng g s test建立服务示例
在这里插入图片描述
2 在根模块里引入
在这里插入图片描述
3 写点数据在服务里
在这里插入图片描述

4 使用
在这里插入图片描述
在这里插入图片描述

OK,这就是angular 服务的理解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李卓书

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值