我在官网中看到使用 $on来监听事件,$emit触发事件。但是下面这句话我不是很理解,父组件可以在使用子组件的地方直接用v-on来监听子组件触发的事件。
{{ total }}
Vue.component('button-counter', {
template: '',
data: function () {
return {
counter: 0
}
},
methods: {
increment: function () {
this.counter += 1
this.$emit('increment')
}
},
})
new Vue({
el: '#counter-event-example',
data: {
total: 0
},
methods: {
incrementTotal: function () {
this.total += 1
}
}
})
这是官网的例子,v-on:increment='incrementTotal' 这句话我的理解是如果increment触发的话,就会触发incrementTotal 但是总感觉不对,请问各位 应该怎样理解?
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
v-on:increment='{回调函数}', button 点击触发 button-counter 的 increment 事件,在父级监听到 increment 事件被触发后调用回调函数。你用DOM中的冒泡去类比理解就清楚了 子元素触发事件会向上冒泡,父元素监听这个事件。也有机会去处理这个事件。
父组件监听increment事件(自定义)然后触发incrementTotal方法,而子组件点击事件触发increment方法,该方法用emit触发increment事件,这个事件被父组件监听到了,总感觉哪里不对 是不是因为好多个increment?