溫馨提示×

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

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

Vue組件之間如何傳遞數(shù)據(jù)

發(fā)布時(shí)間:2020-12-08 12:38:26 來源:億速云 閱讀:189 作者:小新 欄目:web開發(fā)

小編給大家分享一下Vue組件之間如何傳遞數(shù)據(jù),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

一、父組件向子組件傳遞數(shù)據(jù)

在 Vue 中,可以使用 props 向子組件傳遞數(shù)據(jù)。

子組件部分:

Vue組件之間如何傳遞數(shù)據(jù)

這是 header.vue 的 HTML 部分,logo 是在 data 中定義的變量。

如果需要從父組件獲取 logo 的值,就需要使用 props: ['logo']

Vue組件之間如何傳遞數(shù)據(jù)

在 props 中添加了元素之后,就不需要在 data 中再添加變量了

父組件部分:

Vue組件之間如何傳遞數(shù)據(jù)

在調(diào)用組件的時(shí)候,使用 v-bind 將 logo 的值綁定為 App.vue 中定義的變量 logoMsg

Vue組件之間如何傳遞數(shù)據(jù)

然后就能將App.vue中 logoMsg 的值傳給 header.vue 了:

Vue組件之間如何傳遞數(shù)據(jù)

二、子組件向父組件傳遞數(shù)據(jù)

子組件主要通過事件傳遞數(shù)據(jù)給父組件

子組件部分:

Vue組件之間如何傳遞數(shù)據(jù)

這是 login.vue 的 HTML 部分,當(dāng)<input>的值發(fā)生變化的時(shí)候,將 username 傳遞給 App.vue

首先聲明一個(gè)了方法 setUser,用 change 事件來調(diào)用 setUser

Vue組件之間如何傳遞數(shù)據(jù)

在 setUser 中,使用了 $emit 來遍歷 transferUser 事件,并返回 this.username

其中 transferUser 是一個(gè)自定義的事件,功能類似于一個(gè)中轉(zhuǎn),this.username 將通過這個(gè)事件傳遞給父組件

父組件部分:

Vue組件之間如何傳遞數(shù)據(jù)

在父組件 App.vue 中,聲明了一個(gè)方法 getUser,用 transferUser 事件調(diào)用 getUser 方法,獲取到從子組件傳遞過來的參數(shù) username

Vue組件之間如何傳遞數(shù)據(jù)

getUser 方法中的參數(shù) msg 就是從子組件傳遞過來的參數(shù) username

Vue組件之間如何傳遞數(shù)據(jù)

三、子組件向子組件傳遞數(shù)據(jù)

Vue 沒有直接子對(duì)子傳參的方法,建議將需要傳遞數(shù)據(jù)的子組件,都合并為一個(gè)組件。如果一定需要子對(duì)子傳參,可以先從傳到父組件,再傳到子組件。

為了便于開發(fā),Vue 推出了一個(gè)狀態(tài)管理工具 Vuex,可以很方便實(shí)現(xiàn)組件之間的參數(shù)傳遞

以上是“Vue組件之間如何傳遞數(shù)據(jù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(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)容。

AI