redux之前寫(xiě)react比較多,習(xí)慣將state都放在store中。不管container組件還是UI組件,基本上都沒(méi)有自己的state。UI組件純渲染,container組件通過(guò)mapStateToProps和mapDispatchToProps控制輸入。似乎也是redux的三大原則之一:整個(gè)應(yīng)用的 state 被儲(chǔ)存在一棵 object tree 中,并且這個(gè) object tree 只存在于唯一一個(gè) store 中。個(gè)人感覺(jué):store有點(diǎn)太龐大了(其實(shí)這也沒(méi)啥問(wèn)題)有點(diǎn)麻煩,container組件的state太多(或者說(shuō)80%+都是私有狀態(tài)),每次都要到reducers中寫(xiě)一把,然后再到container組件中通過(guò)mapStateToProps導(dǎo)入propsconst reducers = combineReducers({ a, b, c,})const mapStateToProps = state => ({ myC: state.c,});vuex最近在看vuex,似乎vuex中只規(guī)定應(yīng)用層級(jí)的狀態(tài)需要放在store中,并說(shuō)明組件可以擁有自己的state。但是這樣的話,組件數(shù)據(jù)流似乎又比較難控制,比如this.$emit直接調(diào)用父組件的回調(diào)。不知道我有沒(méi)有理解錯(cuò)的地方?大家是如何看待store.state和組件私有狀態(tài)的?
redux、vuex狀態(tài)管理,state是否應(yīng)該盡量放在store中?
慕慕森
2019-02-12 17:19:47