Vue是一個輕量級的漸進式框架,對于它的一些特性和優點在此就不做贅述,本篇文章主要來探討一下Vue子父組件通信的問題
首先我們先搭好開發環境,我們首先得裝好git和npm這兩個工具(如果有不清楚的同學請自行百度哦)
環境搭建步驟:
- 打開git ,運行 npm install --global vue-cli 這是安裝vue的命令行
- vue init webpack vue-demo 這是vue基于webpack的模板項目
- cd vue-demo 進入vue-demo文件夾
- npm install 安裝package.json中依賴的node_modules
- npm run dev 運行該項目
剛剛我們創建的是vue基于webpack工具的一個模板項目,對于webpack和熱加載這些不熟悉的同學不必在意,我們現在不會過多關注webpack的,不過建議對vue有興趣的同學還是去了解一下webpack,它也算是vue開發中的一個必備工具
接著我們進入Demo,首先我們可以刪除掉模板項目中src/components/Hello.vue,然后在App.vue中刪除對于Hello子組件的注冊和使用還有一些其他無關緊要的東西,此時的App.vue應為這樣
一.父組件向子組件傳值
1.創建子組件,在src/components/文件夾下新建一個Child.vue
2.Child.vue的中創建props,然后創建一個名為message的屬性
3.在App.vue中注冊Child組件,并在template中加入child標簽,標簽中添加message屬性并賦值
4.保存修改的文件,查看瀏覽器
react父子組件通信ref。
5.我們依然可以對message的值進行v-bind動態綁定
此時瀏覽器中
父組件向子組件傳值成功
總結一下:
- 子組件在props中創建一個屬性,用以接收父組件傳過來的值
- 父組件中注冊子組件
- 在子組件標簽中添加子組件props中創建的屬性
- 把需要傳給子組件的值賦給該屬性
二.子組件向父組件傳值
1.在子組件中創建一個按鈕,給按鈕綁定一個點擊事件
2.在響應該點擊事件的函數中使用$emit來觸發一個自定義事件,并傳遞一個參數
vue父子組件怎么傳遞方法,
3.在父組件中的子標簽中監聽該自定義事件并添加一個響應該事件的處理方法
4.保存修改的文件,在瀏覽器中點擊按鈕
子組件向父組件傳值成功
總結一下:
- 子組件中需要以某種方式例如點擊事件的方法來觸發一個自定義事件
- 將需要傳的值作為$emit的第二個參數,該值將作為實參傳給響應自定義事件的方法
- 在父組件中注冊子組件并在子組件標簽上綁定對自定義事件的監聽