vuex redux

Redux
  • 核心对象:store
  • 数据存储:state
  • 状态更新提交接口:dispatch
  • 状态更新提交参数:带type和payload的Action
  • 状态更新计算:reducer
  • 限制:reducer必须是纯函数,不支持异步
  • 特性:支持中间件
VUEX
  • 核心对象:store
  • 数据存储:state
  • 状态更新提交接口:commit
  • 状态更新提交参数###### Redux
  • 核心对象:store
  • 数据存储:state
  • 状态更新提交接口:dispatch
  • 状态更新提交参数:带type和payload的Action
  • 状态更新计算:reducer
  • 限制:reducer必须是纯函数,不支持异步
  • 特性:支持中间件
VUEX
  • 核心对象:store
  • 数据存储:state
  • 状态更新提交接口:commit
  • 状态更新提交参数:带type和payload的mutation提交对象/参数
  • 状态更新计算:mutation handler
  • 限制:mutation handler必须是非异步方法
  • 特性:支持带缓存的getter,用于获取state经过某些计算后的值
Redux vs VUEX 对比分析

store和state是最基本的概念,VUEX没有做出改变。其实VUEX对整个框架思想并没有任何改变,只是某些内容变化了名称或者叫法,通过改名,以图在一些细节概念上有所区分。

  • VUEX弱化了dispatch的存在感。VUEX认为状态变更的触发是一次“提交”而已,而调用方式则是框架提供一个提交的commit API接口。
  • VUEX取消了Redux中Action的概念。不同于Redux认为状态变更必须是由一次"行为"触发,VUEX仅仅认为在任何时候触发状态变化只需要进行mutation即可。Redux的Action必须是一个对象,而VUEX认为只要传递必要的参数即可,形式不做要求。
  • VUEX也弱化了Redux中的reducer的概念。reducer在计算机领域语义应该是"规约",在这里意思应该是根据旧的state和Action的传入参数,"规约"出新的state。在VUEX中,对应的是mutation,即"转变",只是根据入参对旧state进行"转变"而已。

总的来说,VUEX通过弱化概念,在任何东西都没做实质性削减的基础上,使得整套框架更易于理解了。

另外VUEX支持getter,运行中是带缓存的,算是对提升性能方面做了些优化工作,言外之意也是鼓励大家多使用getter。

  • 状态更新计算:mutation handler
  • 限制:mutation handler必须是非异步方法
  • 特性:支持带缓存的getter,用于获取state经过某些计算后的值
Redux vs VUEX 对比分析

store和state是最基本的概念,VUEX没有做出改变。其实VUEX对整个框架思想并没有任何改变,只是某些内容变化了名称或者叫法,通过改名,以图在一些细节概念上有所区分。

  • VUEX弱化了dispatch的存在感。VUEX认为状态变更的触发是一次“提交”而已,而调用方式则是框架提供一个提交的commit API接口。
  • VUEX取消了Redux中Action的概念。不同于Redux认为状态变更必须是由一次"行为"触发,VUEX仅仅认为在任何时候触发状态变化只需要进行mutation即可。Redux的Action必须是一个对象,而VUEX认为只要传递必要的参数即可,形式不做要求。
  • VUEX也弱化了Redux中的reducer的概念。reducer在计算机领域语义应该是"规约",在这里意思应该是根据旧的state和Action的传入参数,"规约"出新的state。在VUEX中,对应的是mutation,即"转变",只是根据入参对旧state进行"转变"而已。

总的来说,VUEX通过弱化概念,在任何东西都没做实质性削减的基础上,使得整套框架更易于理解了。

另外VUEX支持getter,运行中是带缓存的,算是对提升性能方面做了些优化工作,言外之意也是鼓励大家多使用getter。

上一篇:vuex的学习


下一篇:单向数据流-从共享状态管理:flux/redux/vuex漫谈异步数据处理