父子組件間的通信

通信方式1(單向綁定): Props down, Events up (建議使用)

Props down, Events up 是指 使用props向子組件傳遞數(shù)據(jù),父組件屬性發(fā)生變化時,子組件可實時更新視圖;子組件發(fā)生變化,可以使用$emit發(fā)送事件消息,以此向父組件傳遞變化消息。

props 是單向的,當(dāng)父組件的屬性變化時,將傳遞給子組件,但子組件中的props屬性變化不會影響父組件的屬性變化(props屬性類型是Object除外)。倘若使用vue1.0的.sync強(qiáng)制雙向,那么子組件的更改將會影響到父組件的狀態(tài),隨著業(yè)務(wù)的增多,很容易讓數(shù)據(jù)流變得難以理解,最終陷入痛苦的泥潭。因此,vue2.0已經(jīng)剔除.sync,且不允許在子組件中更改自身的props屬性。如果真的需要更改props,那一定是設(shè)計方案出了問題,請使用替代方案,如:在data選項或computed選項中再定義一個不同的變量進(jìn)行數(shù)據(jù)轉(zhuǎn)換。這是props down。

既然父組件可以通過props像子組件傳遞信息了,那子組件的數(shù)據(jù)變化如何通知到父組件呢?

$emit的出現(xiàn)便解決了這一問題,該方法用于 子組件向父組件發(fā)送事件消息,可帶上子組件的數(shù)據(jù)信息一起發(fā)送,父組件接收到消息后,做出自身相應(yīng)的變更。vue1.0 和vue2.0均支持$emit。這是events up。

如示例代碼1,父組件通過 age(props) 向子組件傳遞數(shù)據(jù)信息,子組件拿到后,通過$emit向父組件傳遞最新狀態(tài)。如果子組件涉及到可能會對age進(jìn)行更改,則重新定義一個變量age$進(jìn)行中轉(zhuǎn)。

【示例代碼1】

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運,軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式