flux,redux,vuex状态集管理工具之间的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flux,redux,vuex状态集管理工具之间的区别相关的知识,希望对你有一定的参考价值。

一:redux和flux的区别

  1)redux是flux中的一个实现

  2))在redux中我们只能定义一个store,在flux中我们可以定义多个

  3)在redux中,store和dispatch都放到了store,结构更加清晰

  4)在redux中本身就内置State对象,对仓库的管理更加明确

二:redux和vuex的区别

  1)vuex是redux的基础上进行改变,对仓库的管理更加明确

  2)使用mutation来替换redux中的reducer

  3)vuex有自动渲染的功能,所以不需要更新

三:redux的优点

  1)将派发器注入到仓库中,结构更加清晰

  2)减少手动代码量,提高代码效率

四:redux的缺点

  1)一个子组件的状态必须通过父组件传递过来,父组件从仓库统一调控

  2)当一个组件相关数据更新时,即使你的父组件不需要这个组件,它还是会自动更新

五:关于flux

  1)状态集管理框架,由facebook创建,专门用来构建前端框架结构的框架,便于维护,用于安全考虑

  它分为四层:view视图层     action层    dispatcher派发层   store仓库层

  view——>action——>dispatcher——>store返回——>dispatcher——>view(接收的方法:register())

六:关于redux

  1)redux是一个泛用的状态管理框架

  2)解决组件与组件状态管理的问题

  3)redux是flux中的一个实现,不是所有的项目都适合redux

  redux的流程;

  view——>action——>store——>reducer(返回)——>store——view

七:关于vuex

  1)vuex是专门为vue提供的状态管理工具

  2) 便于维护,保证安全,vue中引入vuex,解决状态之间共享的问题

  3)多个组件调用一个状态,将原来组建与组件之间的状态传递改成组件与仓库之间的传递

  4)vuex适用于构建大型的项目,如果不是大型项目,使用vuex会使代码更加繁琐

  2)vuex核心:

    state:存放多个组件共享的状态(数据)

    mutations:存放更改state里状态的方法,用于变更状态,是唯一一个更改状态的属性

    getters:将state中某个状态进行过滤,然后获取新的状态,类似于vue中的computed

    actions:用于调用事件动作,并传递给mutation

    modules:主要用来拆分state

    vueComnent——》(dispatch)Action——》(commit)——》Mutations——》(mutate)State——》(render)VueComponent

 

  

以上是关于flux,redux,vuex状态集管理工具之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

37行代码构建无状态组件通信工具-让恼人的Vuex和Redux滚蛋吧!

关于flux redux vuex 的区别?

状态管理(Vuex FluxReduxThe Elm Architecture)

vuex 原理

Vuex 的概念及安装使用

vuex 与 vue有啥区别