Juliiii / blog

......
4 stars 1 forks source link

reselect源码解读 #2

Open Juliiii opened 5 years ago

Juliiii commented 5 years ago

背景

最近偶然想起了reselect这个库,因为面试今日头条的时候,面试官有问到,当时也回答上来了。只是有点好奇这个库是怎么做到记忆,从而达到缓存的。所以打开它的github看了一下,发现代码量不多,而且实现逻辑不难。所以就趁热写下这篇reselect源码阅读。

开始

结语

以上就是reselect的源码解读。这个库也是比较容易阅读的,因为代码总数就100来行,而且逻辑上不是很难理解。总结一句话,reselect是起到计算衍生值和优化性能的作用,它有点类似vue中的computed功能,而它的实现核心就是闭包。具体一点,就是比较前后的store的state,来决定是否更新衍生值,是,那就执行我们给予的更新逻辑来更新,不是,那就返回之前计算好的结果。源码地址:https://github.com/Juliiii/source-plan, 欢迎大家star和fork,如有不对,请issue,谢谢