1 回答

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個(gè)贊
您創(chuàng)建的全局 mixin 不會(huì)調(diào)用填充roles
屬性的函數(shù),它依賴于繼承實(shí)例來執(zhí)行此操作。在您的app
“根”實(shí)例中,您在created
調(diào)用getRoles
mixin的生命周期鉤子中執(zhí)行此操作,但在組件中Foo
您沒有調(diào)用它,因此它將具有默認(rèn)的空值。該roles
屬性不共享,每個(gè)組件都將獲得它自己的副本,并且需要填充。
您可以通過添加生命周期created
掛鉤來更改 mixin 來為您執(zhí)行此操作,就像您在根實(shí)例中所做的那樣。這是一個(gè)例子。請注意,在混入中實(shí)現(xiàn)這一點(diǎn)不會(huì)阻止或覆蓋以后的生命周期鉤子在它合并到的實(shí)例上運(yùn)行。但是,在您的情況下,它會(huì)對創(chuàng)建的每個(gè)組件實(shí)例進(jìn)行 API 調(diào)用,這可能是不可取的。
如果您只想填充一次然后在所有組件之間共享它,那么使用 Vuex 并擁有一個(gè)roles
集中填充并以反應(yīng)方式在所有組件之間共享的全局狀態(tài)可能更有意義。
添加回答
舉報(bào)