Angular: В документах Lifecycle Hooks неясно, что ngOnChanges не вызывается, когда входы не используются.

Созданный на 27 мар. 2018  ·  1Комментарий  ·  Источник: angular/angular

Я отправляю ...

[x] Documentation issue or request

Текущее поведение

На странице ngOnChanges() :

вызывается перед ngOnInit() и при изменении одного или нескольких свойств ввода с привязкой к данным

а это про ngOnInit() :

вызывается [...] после первого ngOnChanges()

Из этого описания не ясно, что ngOnChanges() _не_ будет вызываться, если компонент используется _без_ ввода каких-либо данных.

Ожидаемое поведение

Документация должна быть более ясной о поведении ngOnChanges() : в частности, если в компоненте объявлены входы, но они не используются, то ngOnChanges() _не_ будет вызываться перед ngOnInit()

Минимальное воспроизведение задачи с инструкциями

https://stackblitz.com/edit/angular-ngonchanges

Какова мотивация / вариант использования для изменения поведения?

Судя по документации, может сложиться впечатление, что ngOnChanges() всегда будет вызываться первым перед ngOnInit() для компонента с входами, даже если эти входы не используются родительским шаблоном / компонентом.

Это может привести к не столь очевидным случайным ошибкам, таким как удаление ngOnInit() если оно дублирует логику запуска компонента из ngOnChanges() .

docs feature medium

Самый полезный комментарий

Это меня тоже зацепило.

Документация действительно выглядит так, как будто ngOnChanges является требованием запуска ngOnInit, но также не дает понять, что ngOnChanges может вообще не срабатывать, если никакие данные не привязаны. На самом деле это просто отображение порядка, в котором они вызываются, а не то, что они связаны друг с другом, срабатывают они или нет.

Было бы здорово прояснить это.

>Все замечания

Это меня тоже зацепило.

Документация действительно выглядит так, как будто ngOnChanges является требованием запуска ngOnInit, но также не дает понять, что ngOnChanges может вообще не срабатывать, если никакие данные не привязаны. На самом деле это просто отображение порядка, в котором они вызываются, а не то, что они связаны друг с другом, срабатывают они или нет.

Было бы здорово прояснить это.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги