在項目開發(fā)中,組件之間的關(guān)系有父子關(guān)系、兄弟關(guān)系和后代關(guān)系三種,各種組件關(guān)系之間的數(shù)據(jù)共享方式和方法都不盡相同,本節(jié)就來看一下組件間數(shù)據(jù)共享的過程。
1.父組件和子組件之間共享數(shù)據(jù)
父組件通過v-bind 屬性綁定向子組件共享數(shù)據(jù)。同時,子組件需要使用props 接收數(shù)據(jù)。示例代碼如下:
子組件通過自定義事件的方式向父組件共享數(shù)據(jù)。示例代碼如下:
2.父子組件之間數(shù)據(jù)的雙向同步
父組件在使用子組件期間,可以使用v-model 指令維護組件內(nèi)外數(shù)據(jù)的雙向同步:
3.兄弟組件之間的數(shù)據(jù)共享
兄弟組件之間實現(xiàn)數(shù)據(jù)共享的方案是EventBus。可以借助于第三方的包mitt 來創(chuàng)建eventBus 對象,從而實現(xiàn)兄弟組件之間的數(shù)據(jù)共享。示意圖如下:
在項目中運行如下的命令,安裝mitt 依賴包,
創(chuàng)建公共的EventBus 模塊,在項目中創(chuàng)建公共的eventBus 模塊如下:
4.在數(shù)據(jù)接收方自定義事件
在數(shù)據(jù)接收方,調(diào)用bus.on('事件名稱', 事件處理函數(shù)) 方法注冊一個自定義事件。示例代碼如下:
在數(shù)據(jù)接發(fā)送方觸發(fā)事件
在數(shù)據(jù)發(fā)送方,調(diào)用bus.emit('事件名稱', 要發(fā)送的數(shù)據(jù)) 方法觸發(fā)自定義事件。示例代碼如下:
5.后代關(guān)系組件之間的數(shù)據(jù)共享
后代關(guān)系組件之間共享數(shù)據(jù),指的是父節(jié)點的組件向其子孫組件共享數(shù)據(jù)。此時組件之間的嵌套關(guān)系比較復(fù)雜,可以使用provide和inject實現(xiàn)后代關(guān)系組件之間的數(shù)據(jù)共享。
猜你喜歡:
vue組件三大部分: template、script、style
什么是Bootstrap組件?組件有什么優(yōu)勢?
Swing文本組件JTextField和JTextArea有哪些區(qū)別?
JDBC程序具體實現(xiàn)步驟演示【Java技術(shù)文章】
傳智教育java高級軟件工程師培訓(xùn)