Декомпозиция компонентов и производительность в ангуларе: есть ли связь?
Речь про Angular 2+.
Есть ли разница в производительности между одним большим компонентом и тем же компонентом, но разбитым нам маленькие дочерние компоненты?
Например, есть редактор заказа. В нём есть список услуг и товаров (где каждая услуга и товар это составной элемент с разными опциями), список работников выполняющих заказ, набор данных о заказе, клиенте итд.
Будет ли разница в производительности (времени отклика интерфейса) - один это компонент со множеством элементов, или это один компонент с множеством дочерних компонентов, которые в свою очередь могут быть разбиты на еще более мелкие компоненты?
Ни в одном "списке рекомендаций по производительности" совета разбивать нет, но ведь по идее уменьшение компонентов должно уменьшить стоимость одного изменения, или нет?
On each asynchronous event, Angular performs change detection over the entire component tree. Although the code which detects for changes is optimized for inline-caching, this still can be a heavy computation in complex applications. A way to improve the performance of the change detection is to not perform it for subtrees which are not supposed to be changed based on the recent actions.