redux

作者: 木中木 | 来源:发表于2019-11-10 14:26 被阅读0次

    状态管理,react没有提供一个整个应用的状态管理,所以就有redux的出现,首先声明 redux 非必须。
    redux设计原则:

    1. 单一数据源,整个应用只维护一颗state树
    2. 数据源是只读的,只有触发action,通过reducer产生新的状态才能更新state树
    3. reducer必须是纯函数,保证同样入参产生一样的结果。

    redux本身就只包含4个API

    1. getState:获取当前的state数据
    2. dispatch,分发action
    3. subscribe,注册一个监听者
    4. replacereducer,更新当前store中的reducer

    redux整个数据流过程如下:


    image.png

    react-redux,提供redux和react联接的桥梁,<provider/>和connect(),provider利用react提供的contextTypes来实现redux中的store,这样我们就可以在所有的子组件中拿到store,connect参数有四个:mapStateToprops / mapDispatchToProps / mergeProps / options(是否纯组件(pure),是否返回ref(withRef))

    middleware,提供一个分类处理action的机会,我们可以检阅每个通过的action,挑选出对应类型的action进行相应操作。这个原理类似虹吸原理,外部action一层一层的进入middleware,直至处理到最里层,获取到最新的dispatch,如果这个过程中利用这个dispatch分发某个action,又会嵌套,从最外层分发开始一直next,这个原理类似koa,然后redux-thunk利用这个原理实现异步通信。

    redux-promise,提供一个promise类型的middleware,实现promise方式的异步

    redux-saga,提供一个基于generator方式的异步通信

    相关文章

      网友评论

          本文标题:redux

          本文链接:https://www.haomeiwen.com/subject/ahcabctx.html