Какова стоимость использования ngDoCheck? - PullRequest
0 голосов
/ 25 октября 2018

Я вставляю ссылку на модель из родительского компонента в дочерний компонент.Когда атрибуты этой модели будут изменены, мне нужно обновить представление дочернего компонента.

Это невозможно сделать с помощью ngOnChanges, поскольку ссылка на модель не изменилась.Это разработано и упоминается в документах Angular.

Предлагаемая альтернатива - использование ngDoCheck.Это позволило бы мне увидеть, изменились ли какие-либо атрибуты модели, и соответственно вызвать функции.Однако в документации Angular упоминается, что это будет дорогостоящим из-за частоты, которую будет вызывать этот хук жизненного цикла.

Прямо сейчас дочерний компонент подписан на наблюдаемую из службы, которая обновляет all моих образцов ссылок.Когда служба обновляет модель, она уведомляет подписчиков, что пришло время обновить их представления.

Проблема здесь в том, что если у меня есть как минимум два дочерних компонента с разными ссылками на модели.При текущем дизайне каждый раз, когда обновляется любая модель, все дочерние компоненты будут обновлять свое представление.

Это кажется расточительным, но я не уверен, будет ли лучше использовать ngDoCheck.

Должен ли я использовать ngDoCheck для индивидуального обновления дочерних компонентов, или я должен придерживаться использования наблюдаемой, которая вынуждает все дочерние компоненты обновляться при обновлении любой модели?

Если это первая, что является хорошей документацией дляngDoCheck?В интернете, похоже, на удивление не хватает информации об этом хуке жизненного цикла.

...