用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) |