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直接调用父组件的回调。
不知道我有没有理解错的地方?大家是如何看待store.state和组件私有状态的?
相关分类