0
respostas

ProvidedIn: Root VS Provided: Module

Boa noite,

Tanto a primeira forma abaixo, quanto a segunda são equivalentes pelo que notei ao realizar pesquisas. Dessa forma, posso pensar que para qualquer Feature Module que vier a criar, irei preferencialmente manter o escopo no próprio módulo (usando a forma 1 ou 2) e somente serviços que estarão presentes na aplicação toda, é que classificarei como provideIn: root (ex: autenticação).... mas visando já a boa prática de manter um singleton, eu poderia também, ao invés de classificar a autenticação em um módulo core (com providedIn: root), também deixá-lo com o providedIn: AuthModule?, ou seja, dentro de um Feature Module = Auth e com seu serviço de autenticação também no escopo somente do módulo? (não notei um benefício de mantê-lo como "providedIn: root", já que é utilzado somente quando for necessário / instanciando, exceto pela questão do tokenService)

(Forma 1) - Especificando na própria classe do serviço @Injectable({ providedIn: UserModule, })

(Forma 2) - Especificando no módulo que importa o serviço @NgModule({ providers: [UserService], })

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software