Vue中監聽$emit派發的事件如何同時接受父組件和子組件傳遞的參數?

場景分析:

子組件內容通過$emit派發的事件並帶有參數傳遞,然後父組件中監聽該事件時,該事件的處理方法需要同時獲取組件外面傳進來的參數

舉個粟子

在MyButton中監聽按鈕點擊並傳遞參數

<template>
  <div class="tag-input-wrapper">
    <button @click="btnClick"/>
  </div>
</template>
methods: {
    btnClick() {
        this.$emit('clickBtn', "子組件參數")
    }
}

在父組件調用MyButton組件時也傳遞一個參數,並傳入arguments

<my-button @clickBtn="myBtnClick('父組件參數', arguments)"></my-button>

我們先看一下arguments在控制檯的打印

methods: {
    myBtnClick() {
        console.log(arguments)
        const fatherArgs = arguments[0] // 父組件參數
        const sonArgs = arguments[1][0] // 子組件參數
    }
}

後文

可能方法不止這一種,筆者只是覺得此方法比較好理解
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章