🔥

Тред (@jin_nin)


Вся коммуникация у нас построена на концепции каналов. Каждое свойство - это некоторая функция, которая может выступать как просто геттер, так и сеттерогеттер. $mol_mem - волшебный декоратор, который реактивно мемоизирует возвращаемое методом значение.
notion image

Делегировать ввод/вывод в/из канала удобно в другие объекты, чтобы связывать их вместе. Например, давайте заперсистим свойство, хранящее айдишники, в локальное хранилище. Теперь вы можете открыть приложение в нескольких вкладках и значение будет всегда синхронизировано.
notion image

Обратите внимание на поле $ - это контекст окружения. Он доступен всем компонентам и наследуется через иерархию владения. Через него любой компонент может переопределить любую глобальную переменную для всего своего поддерева. Например, заменим все стандартные кнопки на свои.
notion image

$mol_test сразу даёт такой контекст окружения, где все внешние и нестабильные зависимости уже замоканы. Так что мы можем безопасно запускать, например, приложение ToDoMVC, которое мусорит в localStorage. Создадим задачу и проверим, что она создалась, а поле ввода очистилось.
notion image

А теперь что-то по сложнее: Создадим пару задач Одну завершим Попереходим по ссылкам и убедимся, что список задач правильно фильтруется. $mol_state_arg - реактивное состояние адресной строки. Оно, разумеется, тоже мокается автоматически и пишет в память, а не location.
notion image