O que é um serviço no Angular e porquê usá-lo?

Serviços Angular
Os serviços angulares são objetos singleton que são instanciados apenas uma vez durante o tempo de vida de um aplicativo. Eles contêm métodos que mantêm os dados ao longo da vida de um aplicativo, ou seja, os dados não são atualizados e estão disponíveis o tempo todo. O principal objetivo de um serviço é organizar e compartilhar lógica de negócios, modelos ou dados e funções com diferentes componentes de uma aplicação Angular.
Por que devemos usar os serviços no Angular?
A separação de interesses é a principal razão pela qual os serviços Angular surgiram. Um serviço Angular é um objeto sem estado e fornece algumas funções muito úteis. Essas funções podem ser chamadas de qualquer componente do Angular, como controladores, diretivas, etc. Isso ajuda a dividir o aplicativo da web em unidades lógicas pequenas e diferentes que podem ser reutilizadas.
Como criar serviços?
Para criar serviços é muito simples, usando angular executamos o seguinte comando:
ng generate service <name> [options]
Neste artigo iremos criar um serviço com o nome “meu-servico”, então o comando ficará desta forma:
ng generate service meu-servico
Após isso será gerado dois novos ficheiros na sua aplicação com o nome meu-servico.service.ts e o meu-servico.service.spec.ts e o documento que vai ser usado para a criação dos métodos a serem compartilhados é o meu-servico.service.ts e a estrutura de classe deste documento estará da seguinte forma:
import { Injectable } from '@angular/core';@Injectable({providedIn: 'root'})export class MeuServicoService {constructor() { }}
Atenção: é boa prática sempre que estiver a criar o serviço especificar o diretório onde este serviço vai estar, e para isso o comando deve estar da seguinte forma:
ng generate service diretorio/meu-servico