Advertisement

Redux和Vuex的区别

阅读量:

由于Vuex和Redux都源自Flux架构,并且在一定程度上相互借鉴了一些理论基础,因此两者有许多相似之处.同样作为专门用于状态管理的库工具, vuex 和 Redux各自负责独立的状态管理.其中, Redux作为一个通用框架,能够独立使用;而vuex则主要用于与Vue框架协同工作.他们都应用了flux架构的思想,在接口方面存在差异.

相同点:

  1. 数据通过state实现共享
  2. 流程遵循一致模式:建立全局状态机制,并根据需求进行触发与状态更新操作
  3. 原理遵循相似模式:借助全局注入机制实现store的管理与数据同步

不同点:

  1. Vuex定义了state,getter、mutation、action四个对象;redux定义了state、reducer、action;
  2. Vuex触发方式有两种commit同步和dispatch异步;redux同步和异步都使用dispatch;
  3. Vuex和state统一存放,方便理解;reduxstate依赖所有reducer的初始值;
  4. Vuex有getter,目的是快捷得到state;redux没有这层,react-redux mapStateProps参数做了这个工作;
  5. Vuex中mutation只是单纯赋值(很浅的一层);redux中reducer只是单纯设置新state(很浅的一层)。他俩作用类似,但书写方式不同;
  6. Vuex中action有较为复杂的异步ajax请求;redux中action中可简单可复杂,简单就直接发送数据对象({type:xxx, your-data}),复杂需要调用异步ajax(依赖redux-thunk插件)。
  7. Redux使用的是不可变数据,而Vuex的数据是可变的。Redux每次都是用新的state替换旧的state,而Vuex是直接修改;
  8. Redux在检测数据变化的时候,是通过diff的方式比较差异的,而Vuex其实和Vue的原理一样,是通过getter/setter来比较的。

9、vuex的流向:

view——>commit——>mutations——>state变化——>view变化(同步操作)

view——>dispatch——>actions——>mutations——>state变化——>view变化(异步操作)

  1. redux的流向:

view——>actions——>reducer——>state变化——>view变化(同步异步一样)

全部评论 (0)

还没有任何评论哟~