Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Porque rodar o método no construtor e não no OnInit?

Eu entendo que o construtor deve iniciar dependências da classe e/ou fazer o trabalho de injeção de dependências, porém, não entendi o real motivo de rodar os métodos de token e decode nele e não no OnInit. Entendo que esse metodo deve ser rodado quando esse "component" for iniciado, mas não entendo pq transferir essa responsabilidade para o construtor.

4 respostas

Fala ai Alessandro, tudo bem? Acho que talvez o motivo é para tentar executar tais funções mais cedo, isso porque o OnInit é chamado depois da instânciação da classe, ou seja, o construtor é executado primeiro.

Porém, eu concordo contigo, também prefiro realizar essas chamadas no OnInit e deixa o construtor apenas para injeção de dependências.

Isso vai muito de cada um e gosto pessoal também, acho que não existe um certo/errado.

Espero ter ajudado.

Fala aí Matheus blz, cara eu fazia esses procedimentos no construtor, porém com o tempo e trabalhando com patterns, hj eu jogo no onInit. Fico pensando que talvez seja pq esse curso é referente a época do angular 2... Pq muita coia desse curso está ultrapassada como o renderer. No mais, pensei que tinha algo especial para isso acontecer... Ele faz o msm procedimento no componente header ...

Só mais uma dúvida, não é uma má prática esse procedimento?

solução!

Sim, eu também gosto de fazer tudo no OnInit e deixar o construtor apenas para injeção.

Hoje eu diria que sim, mas, é complicado definir algo como "má prática", não é porque tanto você quanto eu preferimos fazer de outro jeito que ela de fato é ruim.

O recomendável pelo próprio Angular é usar o construtor para injeção de dependência, então ao meu ver eu considero uma má prática sim.

Porém pode ser que na época isso não era assim (como você mesmo disse) ou o instrutor e outras pessoas não acham isso uma má prática.

Espero ter ajudado.