Как посчитать количество экземпляров для данного класса в приложении Angular? - PullRequest
0 голосов
/ 26 мая 2018

После прочтения ссылок ниже о нечистых и чистых трубах в приложениях Angular:

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

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

Любое решение для отладки / профилировщик для этой цели

Ответы [ 3 ]

0 голосов
/ 26 мая 2018

Я не уверен насчет отладки / профилировщика этого инструмента, потому что он мне никогда не нужен по этой причине, но это может помочь вам понять создание экземпляров.

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

Сервисы - это сервисы, которые могут быть единичными или экземплярами для каждого использования.Многие сервисы, которые вы пишете в приложении, являются синглетонами.Если вы думаете о синглетах, вы можете представить себе службу, которая получает данные с сервера, службу управления состоянием (хранилище), службу, которая отображает некоторую информацию пользователю по требованию (toastr), службу языка (переводы инициализации и переключение языка), ...

На тему услуг Singleton можно многое рассказать, поэтому я рекомендую прочитать https://angular.io/guide/singleton-services.

Если вы хотите визуализировать создаваемые экземпляры, это может сделатьэто легко сделать, написав несколько простых журналов в конструкторе (конструктор создается при создании нового экземпляра класса).

Чтобы регистрировать имя класса каждый раз, когда он создается, добавьте console.log(this.constructor.name) вваш конструктор класса вы хотите войти.

0 голосов
/ 27 мая 2018

Да, это можно сделать с помощью чего-то, что может быть общим или общим для каждого экземпляра класса.А так же сервисы создаются в угловых приложениях для обмена данными между компонентами.Используя ту же концепцию:

  • поместите открытую переменную в службу, скажем public count: number = 0 , в файл SharedService
  • В конструктор класса внедрить этот экземпляр службы и увеличить эту переменную. конструктор (приватный sharedServiceInstance: SharedService) {this.sharedServiceInstance.count ++;}
  • получить переменную подсчета службы, чтобы узнать количество экземпляров, созданных после инициализации приложения. console.log (this.sharedServiceInstance.count)
0 голосов
/ 26 мая 2018

Я не уверен, что это решение для того, чего вы хотите достичь, но есть Augury для отладки Angular.

augury.angular.io

Я считаю это очень полезным в целом.

...