мы сейчас очень активно используем это в проекте (на данный момент для написания вэбкомпонентов чтобы не тащить еще один виртуал дом в проект). Работает оно прекрасно, кода очень мало... уже получили разрешение заопенсорсить... скоро будет в общем
единственный элемент вдом который там есть - это работа с чилдренами. чилдрены получаются из списка, то есть есть старый список и новый и есть соответствующий им хтмл элемент. Нужно сравнить старый массив и новый и вычислить минимальное еоличество мутаций, необходимое для списка, чтобы из старого списка получить новый
то есть тут реально считается дифф для двух массивов (но массивов, не элементов дома), после чего готовится набор мудаций, который применяется уже к дому... но алгоритм весьма простой и довольно быстрый
главное допущение, которое делает это возможным - персистентность данных.... но такое допущение лежит в основе практически всех функциональных языков, поэтому такой подход легко ляжет что на пурс, что на рескрипт, на кложе он уже лежит собственно
Вот с тайпскрипт это сложнее... тут это допущение приходится специально усиливать, накладывать обязательства на пользователя, вводить специальные конструкции вроде Equals интерфейсов
думаю в большинстве вдом этого нет... по крайней мере тот же реакт будет рендерить все даже если ты вручную мутировать будешь... единственное он сделает много лишних ререндерингов
я не работал с рескрипт, только с ризон. Ризон делала так же, потому что там тот же реакт с тем же виртуал домом под капотом. Единственное, там сам язык же иммутабельный и этого просто не происходит по этой причине
Другое дело если у тебя данные уже имутабельные, то зачем тебе реакт? можно выкинуть от него половину и весь виртуал дом выбросить... просто необходимости нет, набор мутаций можно еще на уровне данных посчитать