溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

vue父子組件間如何傳值

發(fā)布時(shí)間:2023-04-12 11:03:18 來(lái)源:億速云 閱讀:85 作者:iii 欄目:web開(kāi)發(fā)

本文小編為大家詳細(xì)介紹“vue父子組件間如何傳值”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“vue父子組件間如何傳值”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。

  1. 父組件傳遞方法

首先,在Vue中父組件向子組件傳遞方法的方式很多,我們先來(lái)看一個(gè)最簡(jiǎn)單的例子。

首先,我們?cè)诟附M件中定義一個(gè)方法:

methods: {
    hello(){
        console.log('hello');
    }
}

接下來(lái),我們需要將這個(gè)方法傳遞給子組件。在Vue中,父組件可以通過(guò)props向子組件傳遞數(shù)據(jù)以及方法。

在父組件中,我們需要通過(guò)以下方式來(lái)完成傳遞方法:

<child-component :hello="hello"></child-component>

在子組件中,我們需要通過(guò)props來(lái)接收父組件傳遞過(guò)來(lái)的方法:

props: {
    hello: Function
}

接著,我們需要在子組件中調(diào)用方法:

<button @click="hello()">Click me</button>

這樣,我們就能夠在子組件中成功調(diào)用父組件傳遞的方法了。

  1. 子組件向父組件傳遞方法

接下來(lái),我們介紹子組件向父組件傳遞方法的方式。跟父組件向子組件傳遞方法的方式相比,這種方式就要復(fù)雜一些。

首先,在子組件中我們定義一個(gè)方法:

methods: {
    send(){
        this.$emit('demo-event');
    }
}

在這里,我們定義了一個(gè)send方法,該方法通過(guò)$emit觸發(fā)了一個(gè)名為“demo-event”的事件。需要注意的是,在Vue中我們傳遞方法時(shí)不直接傳遞函數(shù)本身,而是通過(guò)事件的方式來(lái)傳遞。

接下來(lái),我們需要在父組件中監(jiān)聽(tīng)該事件,具體代碼如下:

<child-component @demo-event="handleDemo"></child-component>

在這里,我們通過(guò)@demo-event來(lái)監(jiān)聽(tīng)子組件觸發(fā)的“demo-event”事件,并在父組件中定義了一個(gè)事件處理函數(shù)handleDemo。

接著,我們需要在父組件中定義handleDemo方法:

methods: {
    handleDemo(){
        console.log('demo event received');
    }
}

這樣,在子組件中觸發(fā)send方法時(shí),就會(huì)觸發(fā)“demo-event”事件,并進(jìn)而執(zhí)行handleDemo方法。

讀到這里,這篇“vue父子組件間如何傳值”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

vue
AI