亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于v-if 后面的值傳到其他組件中

關于v-if 后面的值傳到其他組件中

嗶嗶one 2018-10-16 13:11:11
我在一個組件中,用v-if判斷元素是否渲染在這個組件中是可以的通過true,false來達到目的但我想要在其他組件中可以同樣控制這個getting來控制元素是否隱藏要怎么做?并不是父子組件之間的通信
查看完整描述

1 回答

?
慕雪6442864

TA貢獻1812條經驗 獲得超5個贊

如圖所示.

https://img1.sycdn.imooc.com//5bdbf90c00012d1709330796.jpg

如果不用Vuex神器的話,如果組件比較多的情況下,還是蠻復雜的,如圖所示,如果你的數據在組件D中,而你想在組件B中控制getting的值。

首先你要找到組件D跟組件B的共同祖先,也就是組件F,在組件F中通過props,把getting的值傳遞給組件A,然后組件A中再通過props傳遞給組件D,那么這時候如果是在組件A中或者組件F中修改getting的值,組件D中的值自然會自動變化。也就是說,想修改組件D中的getting值,只要修改祖先組件,也就是組件F中的getting值。

下面來看怎么在組件B中修改祖先,也就是組件F中的getting值,當在組件B中觸發了一個事件,比如按鈕兒點擊事件以后,在相應函數中通過發送一個信號,給上一級的組件也就是組件F,
component B

methods: {buttonClick: function() {
this.emit('event-name',false)
}
}

然后在組件F中監聽這個事件,

<component-f> 
  <component-b @event-name='handleEvent'>
  </component-b></component-f>

在組件F中實現代碼,

methods: {event-name: function() {
this.getting = false;
}
}

這樣,組件F中的getting值就被修改了,從而他的后代組件,組件D中的getting值也會隨之變化,就達到了在其他組件中控制本組件中數據的目的。


查看完整回答
反對 回復 2018-11-02
  • 1 回答
  • 0 關注
  • 873 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號