今天在使用事件總線進行組間通信的時候,在子組件mounted鈎子內打印了this查看指向
每個組件都有自己的_uid,_uid: 80,沒問題。

但是當我來回切換一次頁面(組件肯定伴隨着不停的銷毀創建),第二和第三行為本次的打印,發現同時打印出了兩次,且由_uid可知為兩個不同組件(准確來說是同一個組件的兩次創建)

隨即我再一次切換了頁面,第四、五、六行為本次打印,同時出現了三次。

思考:本質上是mounted鈎子里的事件未解綁,導致不停調用已經死亡的組件的事件(這里描述不知道是否准確)。很明顯我們只需要對最新的頁面(最后一次出現的_uid)觸發事件即可。是由於我們沒有解綁事件,肯定是對性能有影響的。
解決辦法:只要在beforeDestroy鈎子里解綁事件
尤大的答復,事件總線上$emit和$on的事件需要在beforeDestory或者destory鈎子里銷毀它。如果重復工作了,可以在mixin里自動完成它。


vm.$off解綁后再次測試(在vm.$emit的那個組件解綁),我分別切換了三次頁面並每次觸發點擊事件,每次都只顯示最新的頁面(最大的_uid)觸發了事件。

