2017-01-18 15 views
0

ゾンビイベントを削除するには?Vue JSゾンビイベントを削除するには?

前と後の$ onイベントを切り替えると何度も動きます。

App.vue

<template> 
    <input type="button" @click.prevent="click()" value="click"> 
<template> 

<script> 
    export default { 
    methods: { 
     click: function(){ 
     this.$emit('go') 
     } 
    } 
    } 
<script> 

Children.vue

<script> 
    export default { 
    methods: { 
     go: function() { 
     console.log('event received') 
     } 
    }, 
    created: function(){ 
     this.$parent.$on('go', this.go); 
    } 
    } 
<script> 

答えて

0

あなたがコンポーネントを削除するときに、イベントを削除する必要があります。

<script> 
    export default { 
    methods: { 
     go: function() { 
     console.log('event received') 
     } 
    }, 
    created: function(){ 
     this.$parent.$on('go', this.go); 
    }, 
    beforeDestroy: function(){ 
     this.$parent.$off('go',this.go); 
    } 
    } 
<script> 
+0

はい、これは私が必要なものです。ありがとうございました。 –

0

childrenコンポーネントがレンダリングされるたびに呼び出されますので、あなたは、click方法createdにおけるライフサイクルフックを持っています。

+0

にエラーが発生しました申し訳ありません –

関連する問題