В проекте vuejs я использую vue eventbus следующим образом. Выпуская это событие:
icontag.addEventListener('click', testFunction, false)
function testFunction () {
console.log('click1')
Events.$emit('click2')
}
И, получив его в другом модуле, я получаю как вывод один click1, но несколько click2. Он очень похож на каждый раз, когда есть какой-то код, который требует, чтобы импорт/экспорт веб-пакета вызывал дополнительный результат в eventbus того же события... или что-то..., поскольку в chrome devtools связанный код близок к click2 имеет код, например __WEBPACK_IMPORTED_MODULE_5__util
.
Любая идея, что происходит?
EDIT: Я думаю, что это могла быть "испорченная настройка горячей перезагрузки". После восстановления сборки hot-reload для разработчиков проблема теперь исчезла. Все еще интересовался подобным опытом, поскольку проблема была довольно уродливой и настойчивой.
Я думаю, что комментарий Берт прав. Вы можете зарегистрировать много раз те же обработчики событий в одном и том же событии.
Попробуйте удалить обработчик событий, прежде чем добавлять его снова.
icontag.removeEventListener("click", testFunction);
icontag.addEventListener('click', testFunction, false)
function testFunction () {
console.log('click1')
Events.$emit('click2')
}