![[流泪]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_6.dde0d83.png)
Zustand蛮适合作为接触源码的第一站,如果你看Zustand代码你会发现代码真的简单(我第一次看的时候也是蛮惊讶的),所以说并不是越复杂的东西越好,状态管理库的未来一定是简洁易用、符合直觉。
而Zustand的核心是useSyncExternalStoreWithSelector,重点要理解它是解决React18并发更新带来的的Tearing问题。useSyncExternalStoreWithSelector在 use-sync-external-store 库里实现的,会根据React版本来选择是否采用原生的实现,如果React18以下的版本会采用React Hooks实现,因此阅读React源码我非常建议从useSyncExternalStoreWithSelector看起,因为不包含很多上下文,容易看懂,会给你很多信心,源代码在 ->
github.com,对应小册第7章,理解并发更新可以移步第6章,想要自己写一个状态库并不复杂,重点是要理解这些概念。
而Zustand的核心是useSyncExternalStoreWithSelector,重点要理解它是解决React18并发更新带来的的Tearing问题。useSyncExternalStoreWithSelector在 use-sync-external-store 库里实现的,会根据React版本来选择是否采用原生的实现,如果React18以下的版本会采用React Hooks实现,因此阅读React源码我非常建议从useSyncExternalStoreWithSelector看起,因为不包含很多上下文,容易看懂,会给你很多信心,源代码在 ->
展开
评论
3