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