В чем разница между OnChanges и OnPu sh в Angular 8? - PullRequest
0 голосов
/ 05 февраля 2020

Аналогично этому вопросу, В чем разница между OnChanges и DoCheck в Angular 2?

Разница между ними кажется мне очень запутанной. В чем разница между Onchanges и OnPu sh?

Ответы [ 2 ]

1 голос
/ 05 февраля 2020

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

В Angular.

enum ChangeDetectionStrategy {
  OnPush: 0
  Default: 1
}

OnPu sh есть два типа OnChanges. По умолчанию Angular использует стратегию обнаружения изменений ChangeDetectionStrategy.Default.

ngOnChanges () Если вы не укажете, Angular будет применять метод обнаружения изменений по умолчанию, который обнаруживает изменения для всего компоненты всякий раз, когда изменения сделаны. Стратегия по умолчанию ничего не подразумевает в приложении, поэтому каждый раз, когда что-то меняется в нашем приложении, в результате различных пользовательских событий, таймеров, обещаний XHR и т. Д. c. Обнаружение изменений будет выполняться для всех компонентов.

OnPu sh

@Component({
  changeDetection: ChangeDetectionStrategy.OnPush
})

При использовании детекторов OnPu sh платформа проверяет компонент OnPu sh, когда любой из его (только его) входные свойства изменяются, когда он запускает событие или когда Observable запускает событие. Насколько я понимаю, OnPu sh - это простой способ ускорить работу приложений.

Изменение стратегии обнаружения

Здесь вы go для более подробного объяснения.

0 голосов
/ 05 февраля 2020

onchange

По умолчанию Angular использует стратегию обнаружения изменений ChangeDetectionStrategy.Default.

onpu sh

Мы можем установить ChangeDetectionStrategy нашего компонента равным ChangeDetectionStrategy.OnPu sh. Это говорит Angular, что компонент зависит только от его @inputs () (он же чистый) и должен проверяться только в следующих случаях:

1️⃣ Изменяется ссылка на вход. Устанавливая стратегию обнаружения изменений onPu sh, мы подписываем контракт с Angular, который обязывает нас работать с неизменяемыми объектами (или наблюдаемыми, как мы увидим позже).

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

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