javascript - 如果所有請(qǐng)求都放到actions 里面,那拿到的數(shù)據(jù)應(yīng)該 放在哪里,state 還是vue實(shí)例里面的data?
問題描述
如題 看有人將所有的請(qǐng)求都放到了vuex 的action里面 但我想問是不是拿到的數(shù)據(jù)去改變state ? 但是state不是拿來傳遞狀態(tài)的嘛?這樣存數(shù)據(jù)是不是過度使用vuex 啊,求解答?
問題解答
回答1:看需求啊,如果你有幾個(gè)組件共享這個(gè)請(qǐng)求的數(shù)據(jù),你應(yīng)該放進(jìn)vuex進(jìn)行狀態(tài)管理。如果只是一個(gè)組件使用這個(gè)請(qǐng)求的數(shù)據(jù),根本沒必要放進(jìn)vuex。
回答2:數(shù)據(jù)請(qǐng)求放到action里,然后把數(shù)據(jù)commit到mutation里去改變state,然后組件就可以通過下面這種方式來獲取
computed: { ...mapState({’user’ })}
vuex的一個(gè)好處就是兄弟間組件的數(shù)據(jù)共享與通信。并不需要把所有數(shù)據(jù)都放vuex里。
回答3:可以使用Vuet配合route規(guī)則來實(shí)現(xiàn)管理頁(yè)面的請(qǐng)求,可以看下這個(gè)簡(jiǎn)單的例子
回答4:這個(gè)確實(shí)需要看你自己數(shù)據(jù)的需求了這個(gè)時(shí)候可能會(huì)有兩種數(shù)據(jù)。1。全局?jǐn)?shù)據(jù),這種數(shù)據(jù)會(huì)在各個(gè)組件之間相互傳遞,這種數(shù)據(jù)如果是只是放在組件的data里面,那這個(gè)時(shí)候你其他組件在使用該組件的data就麻煩一些了。建議這種數(shù)據(jù)放入state,這樣其他組件去取數(shù)據(jù)的時(shí)候就會(huì)方便很多。并且可以應(yīng)用各種計(jì)算。2.局部數(shù)據(jù),這種數(shù)據(jù)就是組件內(nèi)的特有數(shù)據(jù)了,別的地方根本不會(huì)用的這種,你這種數(shù)據(jù)放入全局的state或者是組件的data里面都沒有關(guān)系了。但是也不能全部盲目的都放在state里面。久而久之你這個(gè)state的數(shù)據(jù)就會(huì)變得亂了。所以看情況去存在data才是關(guān)鍵。
