[x] Documentation issue or request
A página ngOnChanges()
:
chamado antes de
ngOnInit()
e sempre que uma ou mais propriedades de entrada vinculadas a dados mudam
e isso sobre ngOnInit()
:
chamado [...] após o primeiro
ngOnChanges()
Não está claro a partir dessa descrição que ngOnChanges()
_não_ será chamado se o componente for usado _sem_ fornecer quaisquer entradas.
A documentação deve ser mais clara sobre o comportamento de ngOnChanges()
: especificamente, se um componente tem entradas declaradas, mas elas não são usadas, então ngOnChanges()
_não_ será chamado antes de ngOnInit()
https://stackblitz.com/edit/angular-ngonchanges
A julgar pelos documentos, pode-se ter a impressão de que ngOnChanges()
sempre será chamado primeiro antes de ngOnInit()
para um componente com entradas, mesmo se essas entradas não forem usadas pelo modelo / componente pai.
Isso pode levar a erros acidentais não tão óbvios, como remover ngOnInit()
se duplicar a lógica de inicialização de um componente de ngOnChanges()
.
Isso também me pegou de surpresa.
A documentação realmente parece que o ngOnChanges é um requisito para o disparo do ngOnInit, mas também não deixa claro que o ngOnChanges pode não disparar se nenhum dado estiver vinculado. Quando, na realidade, está apenas representando a ordem em que são chamados, não que eles estejam relacionados entre si sendo acionados ou não.
Seria ótimo ter isso esclarecido.
Comentários muito úteis
Isso também me pegou de surpresa.
A documentação realmente parece que o ngOnChanges é um requisito para o disparo do ngOnInit, mas também não deixa claro que o ngOnChanges pode não disparar se nenhum dado estiver vinculado. Quando, na realidade, está apenas representando a ordem em que são chamados, não que eles estejam relacionados entre si sendo acionados ou não.
Seria ótimo ter isso esclarecido.