Об этом проекте
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 и другие проекты как источники вдохновения.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.