Помещает ли размещение ng-шаблона внутри * ng для производительности вообще? - PullRequest
3 голосов
/ 02 июля 2019

Давайте предположим, что следующий ItemComponent создан много раз:

<li *ngFor="let item of items">
    <app-item [data]="item"></app-item>
</li>

и содержит кнопки, которые при нажатии отображают некоторые сложные модальные диалоги.

Влияет ли это на производительность приложения (например, время запуска или объем памяти), когда я размещаю некоторые ng-шаблоны диалогов внутри ItemComponent или вне * ngFor?

Я имею в виду, я знаю, что шаблоны не создаются до тех пор, пока не будут вызваны диалоги, но я не уверен, что сам шаблон создается один раз для компонента или один раз для экземпляра?

1 Ответ

1 голос
/ 02 июля 2019

Влияет ли это на производительность приложения (например, время запуска или объем памяти), когда я размещаю некоторые ng-шаблоны диалогов внутри ItemComponent или вне * ngFor?

<ng-template> - это компонент, который будет создан.Компонент создает ссылку на шаблон из своих внутренних элементов DOM, и эти элементы DOM не отображаются на странице.Шаблон остается в памяти для каждого item, созданного в ngFor. ngTemplate имеет текущий контекст и внедренный контекст .Значение item будет присутствовать в текущем контексте, когда оно находится внутри ngFor, и должно быть предоставлено в объекте контекста при использовании ngTemplateOutlet.

Лучше сохранять ngTemplateза пределами ngFor и передайте item как часть контекста при использовании ngTemplateOutlet.

Вот учебник, который поможет лучше объяснить вещи.

https://blog.angular -университет.io / угловая нг-шаблон нг-контейнер-ngtemplateoutlet /

...