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和组件私有状态的?
这个问题, redux 的文档里也有提到.
http://cn.redux.js.org/docs/f...
我 redux 是只存需要全局共享, 需要持久化的状态.
其他的都让组件自己内部维护.