react-redux的源码分析

react-redux的源码分析

这里简单带着大家看一下react-redux的源码:
  • 但是第一因为这个教程不是讲源码为主的教程(穿插讲解部分源码),所以源码只会阅读核心的部分;
  • 另外我经常会说,整个社区在hooks出现后大量的库转向了hooks,所以在源码中会出现大量的hooks代码;
  • 因为某些hooks的作用在这里也不方便解释(可以学习完hooks之后再详细阅读);
首先,我们简单看一下Provider的源码:
  • 使用了一个useMemo来返回一个contextValue的对象;
    • 这里使用useMemo的原因是为了进行性能的优化;
    • 在依赖的store不改变的情况下,不会进行重新计算,返回一个新的对象;
  • 在下面的Context的Provider中就会将其赋值给value属性;
    在这里插入图片描述
    ReactReduxContext来自另外一个文件:
    Context对象的创建
    connect函数的依赖比较复杂:

调用createConnect来返回一个connect函数:
在这里插入图片描述
createConnect函数的调用:
createConnect函数
connect函数最终调用的是connectHOC:

  • connectHOC其实是connectAdvanced的函数;
  • connectAdvanced函数最终返回的是wrapWithConnect函数;
    在这里插入图片描述
    wrapWithConnect函数:
    wrapWithConnect函数
    wrapWithConnect最终的返回值

转载自coderwhy的微信公众号

猜你喜欢

转载自blog.csdn.net/weixin_44157964/article/details/107734250