1. 程式人生 > >vue2.0父組件與子組件之間的通信

vue2.0父組件與子組件之間的通信

文件夾 授權 處理方法 傳值 目錄結構 著作權 sage 結構 ssa

vue是一個輕量級的漸進式框架,對於它的一些特性和優點包括環境的一些配置在此就不做贅述,本篇文章主要來探討一下vue子父組件之間通信的問題

首先我們先來看一個demo,目錄結構為這樣:

 ?src

     ?components

       ?child.vue

      ?app.vue

此時App.vue應為這樣:

  技術分享圖片

一、父組件向子組件傳值

1.創建子組件,在src/components/文件夾下新建一個Child.vue

2.Child.vue中創建props,然後創建一個名為message的屬性

技術分享圖片

3.在App.vue中註冊Child組件,並在template中加入child標簽,標簽中添加message屬性並賦值

技術分享圖片

4.保存修改的文件,查看瀏覽器

技術分享圖片

5.我們依然可以對message的值進行v-bind動態綁定

技術分享圖片

此時瀏覽器中

技術分享圖片 browser2.png

父組件向子組件傳值成功
總結一下:

  • 子組件在props中創建一個屬性,用以接收父組件傳過來的值
  • 父組件中註冊子組件
  • 在子組件標簽中添加子組件props中創建的屬性
  • 把需要傳給子組件的值賦給該屬性

二.子組件向父組件傳值

1.在子組件中創建一個按鈕,給按鈕綁定一個點擊事件


技術分享圖片 Child2.png

2.在響應該點擊事件的函數中使用$emit來觸發一個自定義事件,並傳遞一個參數


技術分享圖片
Child3.png
3.在父組件中的子標簽中監聽該自定義事件並添加一個響應該事件的處理方法
技術分享圖片 App4.png

4.保存修改的文件,在瀏覽器中點擊按鈕

技術分享圖片 browser3.png

子組件向父組件傳值成功
總結一下:

  • 子組件中需要以某種方式例如點擊事件的方法來觸發一個自定義事件
  • 將需要傳的值作為$emit的第二個參數,該值將作為實參傳給響應自定義事件的方法
  • 在父組件中註冊子組件並在子組件標簽上綁定對自定義事件的監聽
在通信中,無論是子組件向父組件傳值還是父組件向子組件傳值,他們都有一個共同點就是有中間介質,子向父的介質是自定義事件,父向子的介質是props中的屬性。抓準這兩點對於父子通信就好理解了


作者:PengL
鏈接:http://www.jianshu.com/p/2670ca096cf8
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。

vue2.0父組件與子組件之間的通信