NgClass
Пофикшено в версии 15.1.1
Функциональность
Adds and removes CSS classes on an HTML element.
Как оно работает
Исключительный сахар, в директиве инжектиктся текущий элемент и рендерер и при помощи рендерера добавляется/удаляется класс из списка классов элемента.
Почему здесь перфоманс важен
Класс элемента может меняться после любого взаимодействия со страницей, поэтому его изменение должно произойти как можно быстрее
Можем ли мы писать проект без этого
Да, и по возможности обходиться без этого (до версии 15.1.1) и пробовать самостоятельно вешать необходимые классы по какому-нибудь собственному условию
Подводные камни
В старой версии этот фрагмент кода создает каждый тик новый объект, который внутри директивы проверяется KeyValueDifferом что поменялось и тд, что не эффективно
<some-element [ngClass]="{'class1 class2 class3' : true}">...</some-element>
Что влияет на перформанс в этой фиче?
Template binding issues
Last updated