
获得徽章 0
时隔两年React终于发布了主版本18.3:
www.npmjs.com
18.3相比于18.2版本只是增加了一些warning,没有其它改变,用来为不久之后的React19升级做准备:
github.com
18.3相比于18.2版本只是增加了一些warning,没有其它改变,用来为不久之后的React19升级做准备:

评论
2
《深入浅出React状态管理库》更新了Valtio相关章节——18、19章。Valtio 是一个非常有意思的库,基于 Mutable 思想,可以让我们以一种非常轻松和符合直觉的方式编写代码来更新状态,并且 Valtio 内部基于 Proxy 来实现,会帮助我们跟踪哪些属性在组件中被访问,从而自动完成优化避免手动写出类似 Zustand、React Redux 中 selector 的代码,性能默认就是最优的。
如何判断在你的项目中是否应该使用Valtio?首先是兼容性,Valtio内部采用Proxy来实现,因此受限于Proxy的兼容性,例如不兼容IE11,因此如果你的项目需要考虑兼容低版本浏览器,则不能使用。其次就是Valtio基于Mutable模型,在可预测性上不如Zustand、Jotai等基于Immutable的库,因此在大型、复杂的项目不推荐使用。其余则可以根据喜好来选择使用Valtio作为你项目中的状态管理库。
如何判断在你的项目中是否应该使用Valtio?首先是兼容性,Valtio内部采用Proxy来实现,因此受限于Proxy的兼容性,例如不兼容IE11,因此如果你的项目需要考虑兼容低版本浏览器,则不能使用。其次就是Valtio基于Mutable模型,在可预测性上不如Zustand、Jotai等基于Immutable的库,因此在大型、复杂的项目不推荐使用。其余则可以根据喜好来选择使用Valtio作为你项目中的状态管理库。
展开

评论
3
在即将发布的 Zustand v5/ Valtio v2版本都限制了 React 版本大于 18,随着 React 的持续迭代,越来越多的库会抬升 React 最低版本的要求

1
1
冷知识,Jotai Zustand Valtio use-context-selector react-tracked 都是出自一个人之手 ——
Daishi Kato(
github.com)
2023 状态管理库 stars 上升榜中占了三个
Daishi Kato(
2023 状态管理库 stars 上升榜中占了三个

评论
点赞
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