注意 A:這對某些人來說可能聽起來像是重復的,但到目前為止我發現的所有其他問題要么是指 Vue 2,要么是沒有引數的事件。如果我錯了,請糾正我。
注意 B:這個問題可能看起來像一個功能請求,但它不是。我剛開始使用Vue,我不知道如何正確解決這個問題。
我的組件位于App.vue 的兩個級別。它運行以下代碼:
this.$emit('my-event', parameter);
App.vue(向上兩級)使用以下代碼捕獲事件:
@my-event="myFunction"
但要讓事件到達 App.vue,它首先必須通過上面的組件,如下所示:
子組件 > 父組件 > App.vue
父組件可以捕獲事件并將其傳遞給 App.vue,如下所示:
@my-event="$emit('my-event')"
但是隨后該引數被忽略了。
解決它的另一種方法是(在父組件內部):
@my-event="myEvent"
myEvent(parameter) {
this.$emit('my-event', parameter);
}
但我正在尋找一種更簡單、更直觀的方式來傳遞事件。也許是這樣的(在父組件內部):
@my-event="$emit('my-event', parameter)"
這在 Vue 3 中可行嗎?或者類似的東西?發出具有多個級別的引數的事件的最佳方式是什么?任何幫助將不勝感激。
uj5u.com熱心網友回復:
Vue 提供了一個名為的特殊變數$event,您可以在模板中使用它來獲取事件引數。因此,在您的情況下,您可以將事件處理程式撰寫為
@my-event="$emit('my-event',$event)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/414930.html
標籤:
