smalljs$molПошук⌘ KДокументаціяПісочницяПорівнянняЕкосистемаПро проєктUK
РендерингGetting StartedВступМентальна модельПочаток роботиВід TypeScript до view.treeСтруктура проєктуІнструментарійEssentialsВстановленняВидиСтан і реактивністьМаршрутизаціяРендерингТестуванняДеплойРозв'язання проблемDataОтримання данихСхеми данихGiper BazaMoreВітринаЗ React, Vue та SvelteЗбірник рецептівAdvancedПлагіниМетадані модуляОфлайнПодання-привидиAboutЧасті питанняКомандаРелізиAPI$mol_button_major$mol_button_minor$mol_string$mol_number$mol_text$mol_paragraph$mol_list$mol_row$mol_link$mol_check$mol_switch$mol_select$mol_scroll$mol_page$mol_pick

Рендеринг

Цей розділ — про те, що відбувається між зміною вашого реактивного стану й оновленням пікселів на екрані. Вам рідко доводиться про це думати — але розуміння моделі пояснює, чому код $mol лишається швидким без особливих зусиль.

Немає віртуального DOM

$mol не порівнює віртуальне дерево. Кожна властивість подання прив'язана безпосередньо до вузла чи атрибута DOM, яким керує, через ті самі реактивні комірки, з якими ви вже познайомилися в Стані. Коли комірка змінюється, повторно виконуються лише ті прив'язки, що її читають, — не піддерево, не функція компонента, а лише зачеплені властивості.Це означає, що немає проходу узгодження для оптимізації, немає ключів для ручного налаштування diff-у списку й немає memo/shouldComponentUpdate, до яких треба вдаватися. Граф залежностей уже знає мінімальний набір оновлень.

Компоненти ліниві

Подання конструюється лише тоді, коли щось його запитує. Екран, на який ви ніколи не переходите, ніколи не будується; вкладка, яку ви ніколи не відкриваєте, нічого не коштує. Оскільки конструювання відбувається на вимогу й кешується, компонувати великі дерева компонентів дешево — частини, які не потрібні, просто ще не існують.

Рендеринг віртуалізовано

$mol малює лише те, що всередині видимої області. Компоненти, прогорнуті за межі видимості, не зберігаються як прихований DOM — вони взагалі не створюються й будуються тієї миті, коли потрапляють у діапазон. Це архітектурна властивість фреймворка, а не опційна можливість чи спеціальний компонент списку: будь-який лейаут віртуалізовано, тож список із десяти елементів і список із десяти тисяч коштують приблизно однаково для показу.Практичний ефект у тому, що ви пишете звичайні дерева компонентів і довгі списки, не вдаючись до бібліотек віконного рендерингу.

Відтворювані числа

Твердження про продуктивність корисні лише тоді, коли ви можете їх відтворити. Замість наводити цифри тут, $mol бере участь у спільнотному js-framework-benchmark; ви можете прочитати його результати й самостійно перезапустити набір тестів: Результати js-framework-benchmarkВважайте це джерелом істини для порівнянь — виміряним, версіонованим і незалежним від цієї сторінки.

Далі

На цьому базова модель роботи $mol завершена. Далі застосуйте її для завантаження справжніх даних у Отриманні даних.
Редагувати цю сторінку на GitHubЦе було корисно?ТакНіНазадМаршрутизаціяДаліТестування
На цій сторінціНемає віртуального DOMКомпоненти лінивіРендеринг віртуалізованоВідтворювані числаДалі
Type to search the documentation.