Официальная документация AngularJS предоставила следующую информацию по этому вопросу.
$ doCheck() - вызывается на каждом обороте цикла дайджеста. Предоставляет возможность обнаруживать изменения и вносить изменения в них. Любые действия, которые вы хотите предпринять в ответ на обнаруженные вами изменения, должны быть вызваны из этого крючка; реализация этого не влияет на то, когда вызывается $ onChanges. Например, этот крючок может быть полезен, если вы хотите выполнить глубокую проверку равенства или проверить объект Date, изменения которого не будут обнаружены детектором угловых изменений и, таким образом, не будут запускать $ onChanges. Этот крючок вызывается без аргументов; при обнаружении изменений вы должны сохранить предыдущие значения для сравнения с текущими значениями.
Я исследовал в Интернете, но не смог найти никакой информации, связанной с тем, как вызов $ onChanges приведет к вызовам $ doCheck void. Кто-то, пожалуйста, предоставьте дополнительную информацию.
$ OnChanges и $ doCheck могут легко жить бок о бок. Крючок $ doCheck не влияет на крюк $ onChanges. Конечно, поля, проверенные в крюке $ doCheck, больше не нужно обрабатывать в крюке $ onChanges. В угловом 2 даже рекомендуется не использовать эти 2 крючка вместе.