今看到一篇很不錯的vue組件傳值文章,便于理解籽孙,遂做筆記~
一般頁面的視圖App.vue應為這樣
一.父組件向子組件傳值
1.創(chuàng)建子組件烈评,在src/components/文件夾下新建一個Child.vue
2.Child.vue的中創(chuàng)建props,然后創(chuàng)建一個名為message的屬性
3.在App.vue中注冊Child組件犯建,并在template中加入child標簽讲冠,標簽中添加message屬性并賦值
4.保存修改的文件,查看瀏覽器
5.我們依然可以對message的值進行v-bind動態(tài)綁定
此時瀏覽器中
父組件向子組件傳值成功
總結一下:
子組件在props中創(chuàng)建一個屬性适瓦,用以接收父組件傳過來的值
父組件中注冊子組件
在子組件標簽中添加子組件props中創(chuàng)建的屬性
把需要傳給子組件的值賦給該屬性
二.子組件向父組件傳值
1.在子組件中創(chuàng)建一個按鈕竿开,給按鈕綁定一個點擊事件
2.在響應該點擊事件的函數中使用$emit來觸發(fā)一個自定義事件,并傳遞一個參數
3.在父組件中的子標簽中監(jiān)聽該自定義事件并添加一個響應該事件的處理方法
4.保存修改的文件玻熙,在瀏覽器中點擊按鈕
子組件向父組件傳值成功
總結一下:
子組件中需要以某種方式例如點擊事件的方法來觸發(fā)一個自定義事件
將需要傳的值作為$emit的第二個參數否彩,該值將作為實參傳給響應自定義事件的方法
在父組件中注冊子組件并在子組件標簽上綁定對自定義事件的監(jiān)聽
在通信中,無論是子組件向父組件傳值還是父組件向子組件傳值嗦随,他們都有一個共同點就是有中間介質列荔,子向父的介質是自定義事件,父向子的介質是props中的屬性枚尼。抓準這兩點對于父子通信就好理解了