Flux与Redux

2016-12-22  本文已影响128人  LOVE小狼

一. Flux

1. 概念

flux是一套前端应用架构模式,核心是单向数据流

注:flux不是具体的代码实现

2. 解决了什么问题

组件内部state过于复杂时会使得组件本身臃肿难以维护,因此需要将state与事件部分抽取出来,组件本身只负责获取数据与渲染,其他的逻辑通过分类从component中剥离出去,这样可以保证数据流更清晰。

3. 分类分离的内容

组件中只负责渲染之后,组件状态与行为如何分类呢

二. Redux

redux是flux架构的具体代码实现

1. 解决问题

通过对数据流的限制来保证state的变化可预测

注:所谓可预测就是指数据的走向清晰,就像拓扑图一样使数据沿着预定的顺序行走,这就是单项数据流的好处

2. 如何限制数据流

通过redux三大定律

保证的数据流的终点固定。

保证了数据流的起点

保证了修改过程中数据流输出可预测

3.redux组成

  1. action
    action就是一个js对象,保存actiontype与data(行为所需数据),为保证data的复用性一般使用action creator(以data为参数的函数)生成action
  2. reducer
    reducer是一个纯函数,定义了state如何被修改
    const initialState = ''; //拆分的state
    function reducer1 (state = initialState,action) { //拆分的reducer
    switch (action.type) {
    ....
    }
    }
    考虑到当应用复杂的情况下reducer与state会变得非常臃肿,redux采取了先拆分后合并的方式来处理state与reducer
    import { combineReducers } from 'redux';
    import reducer1 from './xxx';
    import reducer2 from './xxx';
    const rootReducer = combineReducers({
    reducer1,
    reducer2
    });
    这样combineReducers会将拆分的state与reducer
  3. store
    redux中提供了createStore函数,它以rootReducer为参数返回store
    const store = createStore(rootReducer);
上一篇 下一篇

猜你喜欢

热点阅读