smalljs$molПоиск⌘ KДокументацияПесочницаСравнениеЭкосистемаО проектеRU
ВведениеGetting StartedВведениеМентальная модельБыстрый стартОт TypeScript к view.treeСтруктура проектаИнструментарийEssentialsУстановкаВьюСостояние и реактивностьРоутингРендерингТестированиеДеплойРешение проблемDataЗагрузка данныхСхемы данныхГипер БазаMoreВитринаИз React, Vue и SvelteСборник рецептовAdvancedПлагиныМетаданные модуляОфлайнGhost-вью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

Введение

Пришли из React или Vue и ничего не складывается? Прочтите сначала Ментальную модель: пять минут о том, куда делись computed, watch, хуки жизненного цикла и загрузка данных.

Что такое $mol?

$mol — это реактивный UI-фреймворк, где вы описываете, что представляет собой интерфейс, а фреймворк сам решает, как и когда его обновлять. Никакого виртуального DOM, ручных подписок и useEffect. Вы описываете компоненты деревом; $mol рендерит только видимое и пересчитывает только то, что действительно изменилось.Компонент состоит из трёх файлов:name.view.tree — декларативная разметка (компактный древовидный язык)name.view.ts — поведение (обычные классы TypeScript)name.view.css.ts — типизированные стили (проверяются компилятором)В этом разделении и заключается вся идея: разметка остаётся читаемой, логика — тестируемой, стили — типобезопасными.Обязательного среди трёх нет ни одного. Дерево — сокращение для структуры, которую можно написать и руками: От TypeScript к view.tree собирает один компонент обоими способами и показывает код, в который дерево компилируется.

Для кого он?

Вам нужно небольшое приложение, которое остаётся небольшим по мере роста — рантайм компактный, а рендеринг по умолчанию виртуализирован.Вы любите типы повсюду — даже стили проверяются TypeScript.Вы устали связывать реактивность вручную — состояние в $mol реактивно автоматически, как в электронной таблице.

На вкус

Счётчик целиком:1$my_counter $mol_view2 sub /3 <= Count $mol_view4 sub / <= count \5 <= Increment $mol_button6 click? <=> increment?7 sub / <= label \+1namespace $.$$ {2 export class $my_counter extends $.$my_counter {3 @ $mol_mem count() { return 0 }4 @ $mol_action increment() { this.count( this.count() + 1 ) }5 }6}count реактивен: всё, что его читает, перерисовывается автоматически при изменении. Нет ни setState, ни массива зависимостей, ни стора, который нужно регистрировать.

Куда дальше?

Готовы запустить что-нибудь на своей машине? Загляните в Быстрый старт и соберите рабочее приложение меньше чем за пятнадцать минут.
Редактировать эту страницу на GitHubБыло полезно?ДаНетВперёдМентальная модель
На этой страницеЧто такое $mol?Для кого он?На вкусКуда дальше?
Type to search the documentation.