Привязка событий в Mithril - это очень простая удобная функция, которая заменяет событие, используя стандартное отсутствие захвата addEventListener
, и автоматически ставит в очередь перерисовку при разрешении (это в отличие от других библиотек представлений, таких как React, где событиепривязка - это сложная, самоуверенная система).
Когда вы хотите сделать что-то по-другому, Mithril позволяет очень легко перейти на прямой доступ к DOM, предоставляя вам доступ к встроенным методам жизненного цикла. В частности, метод oncreate
позволит вам связывать события, однако вы выбираете .
m('div', {
// this
onclick : e => {},
// is the same as this
oncreate: vnode => {
vnode.dom.addEventListener('click', e => {
m.redraw()
})
},
})
. Имейте в виду, что событие click
всегда разрешается после blur
, даже еслипервый захватывает, а второй пузырится - вам может понадобиться использовать mousedown
вместо этого. Вот демонстрация, показывающая, как связывать события захвата и регистрировать последовательность различных событий .