Об этом проекте

Million.js — это инструмент для повышения производительности React, распространяемый как npm-пакет. Он не заменяет React, а работает вместе с ним и предоставляет компилятор и оптимизированную реализацию виртуального DOM. Заявленный подход проекта заключается в отказе от сравнения полных деревьев элементов при согласовании и генерации кода, который напрямую обновляет DOM-узлы, связанные с изменёнными значениями. В README это объясняется на примере счётчика: React обычно рендерит снимок компонента и сравнивает предыдущее и новое JSX-деревья, тогда как Million.js концептуально генерирует проверки, например обновляет абзац только тогда, когда изменяется значение счётчика. Проект описывает это как превращение согласования из линейного обхода дерева в целевые обновления за постоянное время. Утверждается, что Million.js может ускорить React-компоненты до 70%, и приводится ссылка на js-framework-benchmark для подтверждения результатов; этот показатель производительности является заявлением проекта, а не независимо проверенным фактом. Настройка должна быть автоматизирована через CLI Million.js, который можно запустить командой `npx million@latest`. CLI устанавливает пакет и настраивает проект. Из README доступны ссылки на документацию, интерактивное демо, справку по установке, сообщество Discord, трекер задач и руководство для участников. Репозиторий организован как монорепозиторий в каталоге `/packages`. Его основные модули: - `million`: основная реализация виртуального DOM. - `react` и `react-server`: слои совместимости с React. - `compiler`: компилятор для использования Million.js с React. - `jsx-runtime`: среда выполнения JSX для ядра Million.js. - `types`: общие типы TypeScript. В README также есть ссылки на Million Lint — связанный сервис для поиска и исправления проблем производительности — и на запись в блоге, описывающую внутреннее устройство блочного виртуального DOM. Million.js распространяется под лицензией MIT и отмечает blockdom, Voby, ivi, Preact, React, Turbo и другие проекты как источники вдохновения.