多個(gè)頁(yè)面組件(.vue文件)由團(tuán)隊(duì)中不同的開(kāi)發(fā)者寫(xiě)的,這些頁(yè)面中都會(huì)用到一組行政區(qū)劃數(shù)據(jù),這個(gè)數(shù)據(jù)需要用Axios調(diào)用后臺(tái)接口取得,這個(gè)數(shù)據(jù)對(duì)于同一個(gè)用戶是不變的,多個(gè)頁(yè)面組件使用的應(yīng)是同一份數(shù)據(jù)。這些頁(yè)面組件訪問(wèn)順序不固定。那么,我的問(wèn)題是,哪個(gè)頁(yè)面來(lái)負(fù)責(zé)調(diào)用axios取值,并放到store中呢?每個(gè)頁(yè)面都要調(diào)用的話,同一份數(shù)據(jù)會(huì)取多次肯定是不合理的,那是否每個(gè)頁(yè)面都要先判斷這個(gè)值是否存在,不存在則調(diào)用actions取值并放入store中,并watch這個(gè)值變化后,再getter這個(gè)值呢?感覺(jué)這個(gè)判斷邏輯很麻煩,而且還要求所有頁(yè)面都要這樣寫(xiě),在代碼風(fēng)格協(xié)調(diào)上也要花時(shí)間,能否把這些判斷邏輯封裝,頁(yè)面直接調(diào)用呢?請(qǐng)問(wèn)實(shí)踐上大家是怎么用的?以往后端用緩存的經(jīng)驗(yàn)是,提供一個(gè)工具類(lèi)和方法供調(diào)用,這個(gè)方法中封裝了取數(shù)據(jù)的代碼,先判斷緩存中是否存在,存在則返回,不存在則從數(shù)據(jù)庫(kù)獲取后放入緩存,再返回,調(diào)用方只需要調(diào)這個(gè)方法就行了,但這不是異步的實(shí)現(xiàn),不知vuex能否這樣用呢?
1 回答

蕪湖不蕪
TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊
同一個(gè)入口的話,就放最外邊的組件App.vue
里唄。
還是得看你們的數(shù)據(jù)自己拿捏。沒(méi)有固定的獲取地方,只有選擇最合適的。
1、比如你的行政區(qū)劃數(shù)據(jù),這類(lèi)靜態(tài)數(shù)據(jù),直接存 localStorage 就沒(méi)問(wèn)題。
2、像獲取用戶信息數(shù)據(jù),適合放根組件獲取,因?yàn)楹芏嗟胤娇赡苡玫健?br/>3、又比如若干組件共享一組數(shù)據(jù),就可以把這些組件統(tǒng)一起來(lái)放在某一父組件下,然后只要在父組件獲取數(shù)據(jù)就可以了。
添加回答
舉報(bào)
0/150
提交
取消