用vuex来对比来说明
分类 | vuex | redux | react-redux |
写state |
commit mutation (mutable state) |
dispatch reducer (immutable state) |
|
读state |
组件实例能取到$store属性, 通过计算属性的方式拿到想要的state |
store.getState |
用connet封装组件,state和dispacher 会以prop的形式注入组件中 |
订阅state |
计算属性本身就是响应式的,无需其他操作 |
store.subscribe |
在connet封装后的组件中subscribe,视图 组件直接收到新的prop,而无需对state的变 化有感知 |
模块化 | module组装, namespace命名空间 | combineReducers | |
异步 | 用action(异步操作包含在action中)派发mutation |
用中间件处理包含异步操作的函数,在异步函数或promise回调中派发reducer |
|
概念辨析 |
vuex的action和redux的action不是一个东西 vuex的action相当于redux中传给中间件处理的异步函数; redux中的action相当于在vuex中commit一个mutation时传的参数集合(包含mutation名称和payload) |