Это то, что вам нужно знать:
- Elm позволяет вам визуализировать "пользовательский" узел HTML через
Html.node
- Большинство браузеров (иБолее того, с помощью полифилла вы можете создать пользовательский элемент , который использует JS для визуализации.
Итак, ваш код Elm говорит, что я хочу<my-custom-thing customProp="whatever"/>
. Elm отвечает за помещение этого узла в dom и его удаление.
Ваш пользовательский элемент и JS выполняют рендеринг того, что происходит внутри этого узла.
Ваш пользовательский элемент может отправлять события обратно в Elm (например, зависания, щелчки, пользовательские элементы).
Порты предназначены для обработки. У вас есть данные, которые вы хотите отправить между Elm / JS. Если вы отправляете данные черезпорт на JS, а JS изменяет DOM, у вас, скорее всего, возникнут проблемы.