vuex和redux的区别

vuex同步异步方式不一样,\

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

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

redux的同步异步方式一样。

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

vuex只能和vue配合,vuex把redux里面的reducer部分改成了mutations,但是reducer里面需要分情况,要么switch,要么if else,但是vuex里面的mutations,里面直接写方法就OK。

Vuex&Redux工作流程

在这里插入图片描述
在这里插入图片描述
当用户操作 view 之后发出一个 action,store 会根据这个 action 的 type 来遍历所有的 reducers 找到对应的 reducer 来改变 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与redux都是通过store来作为全局状态存储对象。

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

vue中 actions用来处理异步操作mutation只允许同步操作

redux中正常情况下 dispatch传得是对象(同步操作)

下载redux-thunk
使用redux-thunk以后dispatch可以支持传一个函数进行异步请求

参考大佬:https://blog.csdn.net/hyupeng1006/article/details/80755667?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1.control

猜你喜欢

转载自blog.csdn.net/Menqq/article/details/111699432