Как лучше передать шаблон компоненту? Как реквизит или содержание?

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

// In a parent component
<ng-template #templateEx><p>I'm an example1</p></ng-template>
<theme-comp [template] = "templateEx"></theme-comp>

// In a child(ThemeComponent) component
...
@Input() template: TemplateRef<any> // use it with ng-container

Или спроецировав шаблон, который мы хотим, например:

// In a parent component
<theme-comp>
  <ng-template><p>I'm an example2</p></ng-template>
</theme-comp>

// In a child component
...
@ContentChild(TemplateRef) template: TemplateRef<any> // use it with ng-container

Я думаю, что оба подхода будут работать отлично, но мне просто любопытны варианты использования каждого из них или просто различия. Любое понимание будет оценено!

🤔 А знаете ли вы, что...
Angular предоставляет средства для обработки событий и пользовательского ввода.


55