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