Vue.js實戰之組件之間的資料傳遞,vue.js實戰

來源:互聯網
上載者:User

Vue.js實戰之組件之間的資料傳遞,vue.js實戰

前言

Vue 的組件範圍都是孤立的,不允許在子組件的模板內直接引用父組件的資料。必須使用特定的方法才能實現組件之間的資料傳遞。

首先用 vue-cli 建立一個項目,其中 App.vue 是父組件,components 檔案夾下都是子組件。


一、父組件向子組件傳遞資料

在 Vue 中,可以使用 props 向子組件傳遞資料。

子組件部分:

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

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

父組件部分:

在調用組件的時候,使用 v-bind 將 logo 的值綁定為 App.vue 中定義的變數 logoMsg

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

二、子組件向父組件傳遞資料

子組件主要通過事件傳遞資料給父組件

子組件部分:

 

這是 login.vue 的 HTML 部分,當<input>的值發生變化的時候,將 username 傳遞給 App.vue

首先聲明一個了方法 setUser,用 change 事件來調用 setUser

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

其中 transferUser 是一個自訂的事件,功能類似於一個中轉,this.username 將通過這個事件傳遞給父組件

父組件部分:

在父組件 App.vue 中,聲明了一個方法 getUser,用 transferUser 事件調用 getUser 方法,擷取到從子組件傳遞過來的參數 username

 

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

三、子組件向子組件傳遞資料

Vue 沒有直接子對子傳參的方法,建議將需要傳遞資料的子組件,都合并為一個組件。如果一定需要子對子傳參,可以先從傳到父組件,再傳到子組件。

為了便於開發,Vue 推出了一個狀態管理工具Vuex,可以很方便實現組件之間的參數傳遞

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的協助,如果有疑問大家可以留言交流,謝謝大家對幫客之家的支援。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.