redux、vuex状态管理,state是否应该尽量放在store中?

redux

之前写react比较多,习惯将state都放在store中。不管container组件还是UI组件,基本上都没有自己的state。UI组件纯渲染,container组件通过mapStateToProps和mapDispatchToProps控制输入。似乎也是redux的三大原则之一:


整个应用的 state 被储存在一棵 object tree 中,并且这个 object tree 只存在于唯一一个 store 中。


个人感觉:


store有点太庞大了(其实这也没啥问题)

有点麻烦,container组件的state太多(或者说80%+都是私有状态),每次都要到reducers中写一把,然后再到container组件中通过mapStateToProps导入props

const reducers = combineReducers({

    a,

    b,

    c,

})


const mapStateToProps = state => ({

    myC: state.c,

});

vuex

最近在看vuex,似乎vuex中只规定应用层级的状态需要放在store中,并说明组件可以拥有自己的state。

但是这样的话,组件数据流似乎又比较难控制,比如this.$emit直接调用父组件的回调。

https://img2.mukewang.com/5c74af0000013e1e07630250.jpg

不知道我有没有理解错的地方?大家是如何看待store.state和组件私有状态的?

慕慕森
浏览 517回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript