2017-09-11 8 views
1

vuejsプロジェクトでは、私はthisのようなvueイベントバスを使用します。このイベントを送信する:Vuejs eventbusは、Webpackインポートアウトポートのために複数回トリガーされますか?

他のモジュールで受信すると、出力1クリック1となりますが、複数のクリック2が出力されます。 Webpackのインポート/エクスポートが必要なコードがあるたびに、同じイベントのイベントバス上で追加の結果がトリガされるようになります。chrome devtoolsのclick2の近くに関連するコードがあるためです近くに__WEBPACK_IMPORTED_MODULE_5__utilのようなコードがあります。

何が起こっているのでしょうか?

EDIT: 「ホットリロード設定が破損している可能性があります。 devホットリロードビルドを再構築した後は、この問題は解消されたようです。問題と同じような経験に興味があっても、かなり醜く永続的でした。

+1

おそらく可能性が高いコードは* *ハンドラを削除しないこと。ハンドラを削除しないで、ハンドラを追加するコンポーネントが複数回作成/マウントされると、このような動作が発生します。 – Bert

答えて

1

私はバートのコメントが正しいと思います。実際には、同じイベントハンドラで何度も同じイベントハンドラを登録できます。

イベントハンドラをもう一度追加する前に削除してください。

icontag.removeEventListener("click", testFunction); 
icontag.addEventListener('click', testFunction, false) 

function testFunction() { 
    console.log('click1') 
    Events.$emit('click2') 
} 
+0

ええ、これはイベントの量が増えただけなので、今はそれがあったに違いありません。 – musicformellons

関連する問題