Я пытался понять, почему нам все еще нужно использовать шаблоны HTML в Angular2 против чего-то вроде JSX. Мне показалось, что JSX обеспечивает превосходную настройку: напишите весь свой компонент, используя возможности JavaScript (циклы Javascript вместо *ngFor в шаблоне). С таким настроем я отправился на Ng-conf, и после разговора с Брэдом Грином мне открылись преимущества использования HTML-шаблонов.

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

Разделение ответственности

Шаблон HTML должен беспокоиться только о нескольких вещах и может быть легко заменен другим шаблоном. Это обеспечивает такие функции, как NativeScript. Жесткое разделение уровня представления означает, что Angular может поддерживать другие языки шаблонов, что обеспечивает интеграцию, такую ​​​​как Angular2 и NativeScript, которые используют XML для шаблона, а не HTML.

Разделение статических и динамических частей

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

Использование существующих знаний

Использование HTML-шаблонов означает, что мне не нужно обучать своего дизайнера JSX, я могу использовать множество существующих библиотек и инструментов, созданных на основе HTML, а разные члены моей команды могут выполнять свои различные функции, не зная JavaScript от и до. Конечно, есть некоторые вещи, которые вам нужно изучить, такие как ngFor и ngIf, но на этот раз нужно изучить гораздо меньше угловых директив.

В конечном счете, использование шаблона имеет свои преимущества и недостатки по сравнению с чем-то вроде JSX, и каждая команда должна определить, какие преимущества и недостатки они считают наиболее привлекательными. Шаблоны в HTML соответствуют Правилу наименьшей мощности и с недавно объявленными оптимизациями в Angular2 Universal ничего не стоят в плане производительности.

Посмотрите запись в блоге Виктора Савкина на эту тему: http://angularjs.blogspot.com/2016/03/why-angular-renders-components-with.html