react-redux的源码分析

react-redux的源码分析

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

调用createConnect来返回一个connect函数:
react-redux的源码分析_第3张图片
createConnect函数的调用:
react-redux的源码分析_第4张图片
connect函数最终调用的是connectHOC:

  • connectHOC其实是connectAdvanced的函数;
  • connectAdvanced函数最终返回的是wrapWithConnect函数;
    react-redux的源码分析_第5张图片
    wrapWithConnect函数:
    react-redux的源码分析_第6张图片
    react-redux的源码分析_第7张图片

转载自coderwhy的微信公众号

你可能感兴趣的:(react)