说一下什么是 redux、 react-redux、 redux-thunk、 redux-saga、redux-toolkit,它们之间的 区别是什么?

1. redux是指1. 把经常用到的数据借助store保存

 2. 不同组件共享的数据借助store保存

在项目中 一些用户信息就可以保存下来, 并通过action触发reducer,来改变store中数据, 注册了store的组件subscribestore, 有变化时会触发组件重新render

当组件subscribe到了store中的数据改变,会导致forceupdate/setState/或者props改变, 所以会触发getDeriedStateFromProps.如果使用了这个静态生命周期, 可能会有bug(不停的更新为props的值, 处理办法是使state保存一份prevProps的值备份, 用来在函数中比较)

2. react-redux, 借助connect.js高阶组件和provider.js这个context, 来将父组件上的注册的store中的state、action进行共享。

connect.js (晚上更新)

export Connect=(mapState, mapDispatch)=>{

  return function(Component){

    class Connect {

     componentDidMount(){

        this.context.store.subscribe({

          forceUdpadate

        })

      }

      render(){

        

 return (

  <Component

  {....props}

  {...mapStateTOProps(...state)}

  {...mapdispatchToProps(depatch)}

  />

  );      

      } 

    }

Connect.contextType = {store}

    return Connect;

  }

}

3. react-thunk

react-thunk react-logger是借助于柯里话, 将fn([a, b, c])(props) => fn(c(b(a(props)))),这样一层层的 复杂的action转化成副作用action(是指action里面是plainobject)

4. react-saga

主要是借助generator, 进行监听和触发另一个generator, 直到触发到副作用的action。

1.有rootsaga, 放入所有需要被监听的action。 takeEvery/TakeLatest

2. worksaga, 就是takeEvery(action, fn)、takeLastest, takeevery就是(while(true){yield take(), ......yeild fn})当take(action)被执行,将执行下面的fn saga

3. workingSaga,就是上步骤的fn saga。可以是call, 也可以是folk, 甚至可以直接commit change by put

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值