Size: a a a

Elm Lang сообщество разработчиков

2021 August 23

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Так и вёрстка в виде списков-мапок, это минималистичное описание того, что нужно положить в реальный DOM. Шаблон и есть
источник

SO

Sash Osh in Elm Lang сообщество разработчиков
Или там есть js который это все в реактивный дом превращает?
источник

СК

Сергей Князев... in Elm Lang сообщество разработчиков
А virtual dom - максимально облегчённое представление дерева элементов для быстрых диффов, те самые структурки
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Ничего в концепции VDOM не говорит о легковесности.
источник

SO

Sash Osh in Elm Lang сообщество разработчиков
Ангуляр же тоже типа такого же делал (делает?)
источник

СК

Сергей Князев... in Elm Lang сообщество разработчиков
Не очень понял, что имеется в виду под маркетингом)
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
VDOM должен быть изоморфен DOM. В этом весь смысл
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Думаю суть тут все-таки ускользает)) это не vdom, не похоже на вдом и не аналог вдом... даже дифов там нет (кроме списков)...
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Называть любое обновление DOM по некоторому сценарию VDOM — подмена понятий
источник

SO

Sash Osh in Elm Lang сообщество разработчиков
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
diff в шаблонах можно превратить в цепочку вызовов jQuery. Нет тут никакого VDOM, а эффективность — есть
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Более того, VDOM именно изображает настоящий. Для того, чтобы код вьюх работал "как с настоящим".
источник

SO

Sash Osh in Elm Lang сообщество разработчиков
В общем эта виртуал дом со встроенной ленивостью)
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
все-таки нет )
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
вот тут аналог javelin на ts, его больше людей читать могут, может понятней будет https://github.com/snapview/sunrise
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
это скорее похоже на материализованные представления в базах данных, чем на виртуал дом
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
чёт я даже помню, что была такая движуха "real DOM" когда-то :)
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Я-то — не настоящий сварщик, так что могу и попутать чего
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
вот например

const x = cell<number>(1)
const y = formula(inc, x)

тут у всегда равно х увеличенное на единицу. Никаких дифов и виртуал домов, просто когда значение х меняется по ссылке все заинтересованные лица уведомляютс об этом
Но что если y будет например не чистой функцией, а сайд эффектом? Скажем так

const cn = cell<string>('old-class-name')
const el = document.createElement('div')
const reaction = formula(cn => el.className = cn, cn)

таким образом когда cn изменится - он уведомит всех заинтересованных лиц, в данном случае reaction, а уже она имея прямую ссылку на элемент настоящего дома внесет еобходимые изменения. Это очень низкоуровневое обьяснение, конечно же там есть высокоуровневое апи которое все эти сложности скрывает
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
а для пользователя это будет выглядеть так

const cn = cell<string>('old-class-name')
div([
   className(cn),
   children([ text('Hello') ])
])

где функция div сама создаст элемент и все необходимые реакции
источник