NUCLO / 12

Язык

Nuclo v0.3.29 · без зависимостей

Создавайте интерфейсы
с явными обновлениями
на nuclo.

Небольшой типобезопасный DOM-фреймворк. Состояние остаётся обычным и изменяемым. Вы управляете каждым обновлением. Без прокси, сигналов и виртуального DOM.

$npm create nuclo@latest
0
зависимостей
175
типизированных построителей HTML и SVG
~18.4KB
ядро среды выполнения, gzip
01/09 · update()
Нарисуйте, затем обновите
stateplain array · tap or dragupdate()domreal nodes
0 mutations · 0 update() · 0 patched
01/09 · update()
Нарисуйте, затем обновите

Один явный цикл.

Значения зависят от состояния, но графа зависимостей и планировщика нет. Вы решаете, когда их вычислять: один предсказуемый путь от данных до экрана.

  1. 01Изменение

    Измените данные

    Состояние — обычный JavaScript: переменные, массивы, объекты. Меняйте его как угодно и сколько угодно раз.

    todos.push(newTodo) user.name = 'Ada'
  2. 02Применение

    Вызовите update()

    Одна глобальная функция применяет изменения. Внесите несколько изменений, затем примените их одним вызовом. До вашей команды ничего не рендерится.

    update()
  3. 03Обновление

    Nuclo синхронизирует DOM

    Каждое динамическое выражение вычисляется заново. Nuclo записывает в DOM только действительно изменившиеся значения. Без сравнения деревьев и повторного рендеринга.

    // изменены 2 узла, // всё остальное не затронуто
Когда вы изменяете состояние, ничего не происходит. Вызовите update(), и Nuclo сделает ровно то, что вы попросили. Ни больше ни меньше.
  1. Явное лучше неявного

    Прокси не отслеживают каждый ваш шаг. Вы изменяете состояние, затем вызываете update(). Причина и следствие остаются ясными и предсказуемыми.

  2. Меняйте свободно, обновляйте один раз

    Внесите десять изменений, затем один раз вызовите update(). DOM увидит только итоговое состояние. Лишнего рендеринга нет.

  3. Функции вместо компонентов

    Используйте обычные функции JavaScript. Nuclo не требует классов, декораторов и специального синтаксиса. Каждая функция возвращает узлы DOM. Добавляйте onMount и onDestroy как обычные модификаторы, только когда они нужны.

Создано для ясности.

Без магии и сюрпризов. Каждое обновление намеренно.

  • 01Явность

    Вы управляете циклом обновления

    Меняйте состояние свободно, затем один раз вызывайте update(). Nuclo не требует подписок и планировщиков и не удивляет неожиданным сравнением деревьев. DOM синхронизируется по вашему решению.

  • 02Лёгкость

    Без зависимостей

    Ядро среды выполнения занимает около 18.4 КБ в gzip. Nuclo не требует компилятора и плагинов сборки. Добавьте один импорт и начинайте.

  • 03Типизация

    Создано для TypeScript

    175 полностью типизированных построителей HTML и SVG дают автодополнение для каждого атрибута, свойства стиля и события.

  • 04Точность

    Точечные изменения

    Динамические выражения вычисляются заново при update(). DOM затрагивают только действительно изменившиеся значения.

Быстро там, где это важно.

Независимые результаты js-framework-benchmark: создание, обновление, перестановка и удаление тысяч строк.

js-framework-benchmark · keyedМеньше — лучше
  1. Nuclo0.2.24
    1.12
  2. Solid1.9.3
    1.13
  3. Svelte5.42.1
    1.17
  4. Vue3.5.39
    1.31
  5. Riot10.1.2
    1.54
  6. React19.2.0
    1.58
  7. Angular22.0.0
    1.58
  8. Stencil4.23.0
    1.81
  9. Ember7.3.0-alpha.5
    2.06
  10. Knockout3.5.1
    2.26
  11. Qwik1.11.0
    3.29
Оценка показывает замедление относительно самой быстрой измеренной реализации. Это взвешенное геометрическое среднее всех тестов с ключами.Источник: js-framework-benchmark

Начинайте, когда будете готовы.

Установите Nuclo, импортируйте один раз и создавайте UI, который обновляется ровно по вашей команде. Весь API можно изучить за полдня.