Flux是一种前端应用架构,它的诞生是。
Flux的核心思想是数据和逻辑永远是单向流动的,由三部分组成:
1、dispatcher 负责分发事件
2、store 负责保存数据,同时相应事件并更新数据
3、view 负责订阅store中的数据,并使用这些数据渲染相应的页面
优点:即在view层,通过dispatcher接受action的数据,然后再命令store进行相应的数据变更同时更新view,整个流程当中,数据始终在单向流动。store里数据的变更只能通过dispatch来修改,强化数据修改的纯洁性
缺点:Flux的冗余代码太多,每个应用中都需要手动创建一个dispatcher的实例,而且在一个应用中含有多个store。
Redux和Vuex都是基于Flux的思想实现的
Redux和Flux的区别
1、Redux中只有一个store,而Flux中有多个store来存储应用数据,并在store里面执行更新逻辑,当store变化的时候再通知controller-view更新自己的数据,Redux是将各个store整合成一个完整的store,并且可以根据这个store来得到完整的state,而且更新的逻辑也不再store中,而是在reducer(采用纯函数)中。
2、Redux没有Dispatcher这个概念。它使用的是reducer来进行事件的处理,reducer是一个纯函数(preState, action) => newState
,在Redux应用中,可能有多个reducer,每一reducer来负责维护应用整体state树中某一部分,多个reducer通过combineReducers
方法合成一个根reducer,来维护整个state