【发布时间】:2021-07-03 15:57:57
【问题描述】:
如果我有一个组件:
<product-display
:premium="premium"
:cart="cart"
@add-to-cart='updateCart'
@remove-from-cart='removeById'>
</product-display>
用这两种方法:
methods: {
removeFromCart() {
this.$emit('remove-from-cart', this.variants[this.selectedVariant].id)
},
addToCart() {
this.$emit('add-to-cart', this.variants[this.selectedVariant].id)
},
而父级有这些方法:
methods: {
updateCart (id) {
this.cart.push(id)
},
removeById(id) {
const index = this.cart.indexOf(id)
if (index > -1) {
this.cart.splice(index, 1)
}
}
}
有没有办法从父级中删除一个方法并仅使用 updateCart(id) 知道从哪个子级发出事件?
所以在 HTML 中你最终会得到:
@add-to-cart='updateCart'
@remove-from-cart='updateCart'
【问题讨论】:
标签: javascript html events dom-events vuejs3