1
resposta

"Subjects"

Na aula 07 do 3º módulo, o prof usou Subject e BehaviorSubject para emitir o valor que outro component iria usar.

A pergunta é, porque usar isso? Eu poderia muito bem salvar o valor numa propriedade qualquer e depois acessar no outro componente via injeção de dependência, não?

Eu ate entendi +/- como os Subjects funcionam, mas existe algum motivo para usá-los em vez de fazer o que eu citei acima?

1 resposta

Oi Wendellra! Tudo bem?

Desculpe a demora em retornar.

A utilização de Subjects e BehaviorSubjects em Angular é uma forma de comunicação entre componentes que pode ser muito útil em determinadas situações.

A principal vantagem de utilizar Subjects é a capacidade de emitir valores de forma assíncrona, ou seja, sem precisar esperar por uma resposta síncrona. Além disso, os Subjects permitem que múltiplos observadores recebam os valores emitidos, o que pode ser muito útil em cenários onde há mais de um componente interessado em receber o mesmo valor.

Embora seja possível salvar valores em propriedades e acessá-los em outros componentes via injeção de dependência, essa abordagem pode não ser tão flexível quanto o uso de Subjects. Por exemplo, se o valor salvo em uma propriedade for alterado, é necessário que os componentes que dependem dessa propriedade sejam atualizados manualmente. Já com o uso de Subjects, os componentes que se inscrevem no Subject são notificados automaticamente sempre que um novo valor é emitido.

Espero ter ajudado a esclarecer a sua dúvida!

Um abraço e bons estudos.