如果組件是一個單頁面,組件之間存在父子關係,數據傳遞就需要根據父子不同的地位使用不同的辦法。
藉助新建的Electron-vue項目自帶的兩個組件來說明。
目錄結構如下:
其中LandingPage.vue是父組件,SystemInformation.vue是子組件。
一、父組件向子組件傳遞數據
父組件可通過Props向子組件傳遞數據。
子組件:
子組件顯示從父組件獲取的數據到newName,newPwd,使用props。
父組件:
在調用組件的地方使用v-bind綁定父組件中定義的變量到子組件中顯示的數據名newName,newPwd。
然後就可以在子組件中顯示父組件傳遞的數據啦。
二、子組件向父組件傳遞數據
子組件通過$emit事件向父組件傳遞數據。
子組件:
子組件的數據username,通過change事件調用方法setUser(),觸發$emit事件,然後傳送給父組件中的自定義事件changeName
父組件:
父組件的changeName事件調用getUser方法,獲取從子組件傳遞的參數username。
getUser 方法中的參數 msg 就是從子組件傳遞過來的參數 username。
以下動圖中,輸入框與welcome是屬於子組件,嵌套在父組件中,輸入框輸入值,傳遞給父組件顯示。