Эта глава о том, что происходит между изменением вашего реактивного состояния и обновлением пикселей на экране. Об этом редко приходится думать — но понимание модели объясняет, почему $mol-код остаётся быстрым без особых усилий.
$mol не диффит виртуальное дерево. Каждое свойство вью привязано напрямую к DOM-узлу или атрибуту, которым оно управляет, через те же реактивные ячейки, с которыми вы уже познакомились в Состоянии. Когда ячейка меняется, заново выполняются только те связывания, что её читают — не поддерево, не функция компонента, а именно затронутые свойства.Это значит, что нет ни прохода сверки, который надо оптимизировать, ни ключей для ручной подгонки диффа списка, ни memo/shouldComponentUpdate, за которыми надо тянуться. Граф зависимостей уже знает минимальный набор обновлений.
Вью конструируется, только когда его кто-то запросил. Экран, на который вы никогда не переходите, никогда не строится; вкладка, которую вы не открываете, не стоит ничего. Поскольку конструирование происходит по требованию и кешируется, композиция больших деревьев компонентов дёшева — ненужные части просто ещё не существуют.
$mol рендерит только то, что внутри вьюпорта. Компоненты, прокрученные за пределы видимости, не хранятся как скрытый DOM — они вообще не создаются и строятся в тот момент, когда попадают в зону видимости. Это архитектурное свойство фреймворка, а не опциональная фича или особый компонент-список: виртуализирована любая разметка, поэтому список из десяти элементов и список из десяти тысяч отображаются примерно одинаково по стоимости.Практический эффект в том, что вы пишете обычные деревья компонентов и длинные списки, не прибегая к библиотекам оконного рендеринга.
Заявления о производительности полезны, только если их можно воспроизвести. Вместо того чтобы приводить цифры здесь, $mol участвует в общедоступном js-framework-benchmark; вы можете прочитать его результаты и перезапустить набор тестов сами:результаты js-framework-benchmarkСчитайте это источником истины для сравнений — измеренным, версионированным и независимым от этой страницы.