Прочитав документацию и несколько статей о фазах обнаружения и рендеринга изменений ReactJS и Angular (не AngularJS), я пришел к вопросу, который попытаюсь объяснить через несколько минут.
Как вы, вероятно, читали в документации React (здесь и здесь), существует концепция (если хотите) под названием "Примирение", которая в основном относится на «Алгоритм сравнения» и процесс, который выполняется после вызова методов «рендеринга» и создания деревьев элементов React, и DOM em> должны быть соответственно обновлены... Как сказано в их документах, React реализует эвристический алгоритм O(n), который сравнивает новую версию виртуального DOM (VDOM) с предыдущей, чтобы эффективно обновлять только те части взгляды, которые действительно изменились.
Но говоря об Angular, как я читал в некоторых статьях, таких как здесь, здесь и здесь, похоже, что Angular, с другой стороны, смотрит только на "bindings", полученные из шаблонов:
Когда компилятор анализирует шаблон, он идентифицирует свойства компонента, связанные с элементами DOM. Для каждой такой ассоциации компилятор создает привязку в виде инструкций. Привязка является основной частью обнаружения изменений в Angular.
а потом:
После создания привязок Angular больше не работает с шаблоном. Механизм обнаружения изменений выполняет инструкции, которые обрабатывают привязки. Задача этих инструкций — проверить, изменилось ли значение выражения со свойством компонента, и при необходимости выполнить обновления DOM.
поэтому, чтобы обернуть это:
Обработка привязок, которые выполняют грязные проверки и обновляют соответствующие части DOM, являются основными операциями обнаружения изменений в Angular.
(из третьей ссылки)
Итак, мой вопрос: можем ли мы сказать, что Angular достигает такого же повышения производительности, как React, когда он запускает обнаружение изменений исключительно для «bindings», а не для всего вновь созданного шаблона/VDOM, что устраняет необходимость в оптимизированный алгоритм сравнения?
Или есть какой-то другой момент в обнаружении изменений Angular, который реализует такую эффективность?