[x] Documentation issue or request
На странице ngOnChanges()
:
вызывается перед
ngOnInit()
и при изменении одного или нескольких свойств ввода с привязкой к данным
а это про ngOnInit()
:
вызывается [...] после первого
ngOnChanges()
Из этого описания не ясно, что ngOnChanges()
_не_ будет вызываться, если компонент используется _без_ ввода каких-либо данных.
Документация должна быть более ясной о поведении ngOnChanges()
: в частности, если в компоненте объявлены входы, но они не используются, то ngOnChanges()
_не_ будет вызываться перед ngOnInit()
https://stackblitz.com/edit/angular-ngonchanges
Судя по документации, может сложиться впечатление, что ngOnChanges()
всегда будет вызываться первым перед ngOnInit()
для компонента с входами, даже если эти входы не используются родительским шаблоном / компонентом.
Это может привести к не столь очевидным случайным ошибкам, таким как удаление ngOnInit()
если оно дублирует логику запуска компонента из ngOnChanges()
.
Это меня тоже зацепило.
Документация действительно выглядит так, как будто ngOnChanges является требованием запуска ngOnInit, но также не дает понять, что ngOnChanges может вообще не срабатывать, если никакие данные не привязаны. На самом деле это просто отображение порядка, в котором они вызываются, а не то, что они связаны друг с другом, срабатывают они или нет.
Было бы здорово прояснить это.
Самый полезный комментарий
Это меня тоже зацепило.
Документация действительно выглядит так, как будто ngOnChanges является требованием запуска ngOnInit, но также не дает понять, что ngOnChanges может вообще не срабатывать, если никакие данные не привязаны. На самом деле это просто отображение порядка, в котором они вызываются, а не то, что они связаны друг с другом, срабатывают они или нет.
Было бы здорово прояснить это.