子コンポーネントのいずれかのボタンがクリックされたときに、親コンポーネントで実行するメソッドを取得しようとしています。Webpack で単一ファイル コンポーネントを使用しています。子コンポーネントのコードは次のとおりです。
<template>
<button v-on:click="add">Click</button>
</template>
<script>
export default {
methods: {
add: () => {
console.log('foo')
this.$dispatch('addClick')
}
}
}
</script>
そして、親のコード:
<template>
<div id="app">
<count :total="total"></count>
<click></click>
</div>
</template>
<script>
import count from './components/count.vue'
import click from './components/click.vue'
export default {
components: {
count,
click
},
data: () => {
return {
total: 0
}
},
methods: {
addToTotal: () => {
console.log('bar')
this.total += 1
}
},
events: {
addClick: 'addToTotal'
}
}
</script>
コンポーネントは、変数count
を表示する単なる h1 要素です。total
ボタンをクリックすると、「foo」はコンソールに記録されますが、「bar」は記録されず、合計も変わりません。私が間違っていることについてのアイデアはありますか?前もって感謝します!