[x] Documentation issue or request
ライフサイクルフックのページには、 ngOnChanges()
について書かれています:
ngOnInit()
、および1つ以上のデータバインドされた入力プロパティが変更されるたびに呼び出されます
そしてこれは約ngOnInit()
:
最初の
ngOnChanges()
後に[...]と呼ばれます
その説明から、コンポーネントが入力を提供せずに使用された場合にngOnChanges()
が呼び出されないことは明らかではありません。
ドキュメントはngOnChanges()
動作についてより明確にする必要があります。具体的には、コンポーネントに入力が宣言されているが使用されていない場合、 ngOnChanges()
はngOnInit()
前に呼び出されません。
https://stackblitz.com/edit/angular-ngonchanges
ドキュメントから判断すると、入力のあるコンポーネントでは、親テンプレート/コンポーネントで入力が使用されていない場合でも、 ngOnChanges()
が常にngOnInit()
前に最初に呼び出されるという印象を受けるかもしれません。
これにより、コンポーネントの起動ロジックがngOnChanges()
から重複している場合に、 ngOnInit()
を削除するなど、それほど明白ではない偶発的なエラーが発生する可能性があります。
これも私を捕らえました。
ngOnChangesがngOnInitの起動の要件であるように、ドキュメントは実際に出くわします。また、データがバインドされていない場合、ngOnChangesがまったく起動しない可能性があることも明確にされていません。 実際には、それは単にそれらが呼び出される順序を描写しているだけであり、それらがトリガーされているかどうかに関係しているということではありません。
これを片付けてもらうのは素晴らしいことです。
最も参考になるコメント
これも私を捕らえました。
ngOnChangesがngOnInitの起動の要件であるように、ドキュメントは実際に出くわします。また、データがバインドされていない場合、ngOnChangesがまったく起動しない可能性があることも明確にされていません。 実際には、それは単にそれらが呼び出される順序を描写しているだけであり、それらがトリガーされているかどうかに関係しているということではありません。
これを片付けてもらうのは素晴らしいことです。