剛接觸 Vue 不久碰到這么一個(gè)問(wèn)題:頁(yè)面A有一個(gè)方法 func,從頁(yè)面A跳轉(zhuǎn)到頁(yè)面B,在頁(yè)面B做一系列操作,如果操作成功則主動(dòng)退回到頁(yè)面A并觸發(fā)頁(yè)面A的 func。我現(xiàn)在是寫了一個(gè) bus (空的 Vue 實(shí)例)實(shí)現(xiàn)了這個(gè)需求,需要在頁(yè)面A和頁(yè)面B都引入這個(gè) bus,然后在頁(yè)面A bus.$on('event', callback),在頁(yè)面B bus.$emit('event')。我想問(wèn)除了這個(gè)方法以外有沒(méi)有更好的實(shí)現(xiàn)方式?
2 回答

HUWWW
TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊
1、父子組件 props
2、同級(jí)組件 eventbus
3、vuex 也可以考慮下吧,做全局狀態(tài)存儲(chǔ),或關(guān)鍵值存儲(chǔ)
關(guān)鍵值存儲(chǔ)也可以考慮 cookie,localstorage,sessionstorage 等,通過(guò)關(guān)鍵值確認(rèn)是否執(zhí)行相關(guān)函數(shù)。

茅侃侃
TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超21個(gè)贊
提供另一種思路哈,沒(méi)實(shí)踐不知是否可行
let runFuncFlag;//運(yùn)行標(biāo)志Vue.prototype.setFlag = function (flag) { runFuncFlag = flag }; Vue.prototype.getFlag = function () { return runFuncFlag }; B頁(yè)面調(diào)用 this.setFlag(參數(shù)) A頁(yè)面調(diào)用let res = this.getFlag();//再判斷res 是否調(diào)用func函數(shù) //再清除標(biāo)志 this.setFlag();
添加回答
舉報(bào)
0/150
提交
取消