鍍金池/ 問(wèn)答/網(wǎng)絡(luò)安全  HTML/ 最認(rèn)真的提問(wèn)之Vue非父子組件之間通信的bug

最認(rèn)真的提問(wèn)之Vue非父子組件之間通信的bug

1.一共三個(gè)組件
-1- 點(diǎn)餐組件
-2- 已點(diǎn)組件
-3- 按鈕組件(添加餐品的按鈕)
2.邏輯功能
-1- 在點(diǎn)餐組件里面點(diǎn)擊添加按鈕,想要在已點(diǎn)里面展示
3.已有代碼
-1- 點(diǎn)餐組件:

clipboard.png

將這個(gè)計(jì)算組件傳入按鈕組件:

clipboard.png

-2- 按鈕組件里面接受這個(gè)值并且傳遞給已選組件:

clipboard.png

-3- 已選組件:

clipboard.png

4.問(wèn)題:
每個(gè)餐品需要點(diǎn)擊兩次才能顯示在已點(diǎn)組件里。

5.個(gè)人分析:
沒(méi)有經(jīng)過(guò)點(diǎn)擊添加事件時(shí),餐品的count一開始是沒(méi)有的,所以傳遞給按鈕組件其實(shí)是個(gè)空的;當(dāng)點(diǎn)擊了添加按鈕之后,將餐品的count加1之后,點(diǎn)餐組件里的計(jì)算屬性判斷才會(huì)通過(guò),這樣才會(huì)顯示出來(lái);每個(gè)餐品都是這樣

6.如果直接傳值給已選組件,并且如果已選是選餐的子組件,是沒(méi)問(wèn)題的;但是現(xiàn)在問(wèn)題是這兩者不是父子的關(guān)系,是兄弟關(guān)系,試著通過(guò)eventbus,但是也還是不行,eventbus是頁(yè)面created的時(shí)候只會(huì)執(zhí)行一次

7.求問(wèn)怎么解決┭┮﹏┭┮

回答
編輯回答
焚音

哇蘇大小學(xué)妹,我覺(jué)得你放棄 Bus,用 vuex 吧,這種情況把數(shù)據(jù)都放在 store 里就好了,不需要處理這么多事件,只要關(guān)心怎么修改數(shù)據(jù)就好了,在別的組件里可以直接拿到商品數(shù)據(jù),不需要通過(guò)事件來(lái)通知其他組件。

2017年8月18日 22:53