当时我的信念是全局状态应该通过 React Context 传递,以便它可以与 React 并发模式一起工作。因此,我制作了一个比较表来区分我的图书馆和其他图书馆,Zustand 就是其中之一。这是2019年的事情。
2020年,我加入了Poimandres团队并接管了Zustand的开发。当时我的兴趣是让全局状态库与 React 并发模式一起工作。不可能从并发模式中获得全部好处,但是有一个名为 useMutableSource 的实验性 API 可以使全局状态与并发模式兼容。
我使用基于 React Context 的解决方案和 React-Tracked 尝试了很多事情,并且想知道在没有 React Context 的情况下我们可以用全局状态做什么。 Zustand 已有一年了,但没有人维护它。于是,我决定接手。
实验性的 useMutableSource API 还没有准备好,所以第一个任务是更新各种内容并修复一些错误。这就是 Zustand v3 诞生的时候。我的希望是很快发布带有 useMutableSource 的 v4,但它没有发生。这背后还有一个故事。
如今,将全局状态置于外部并可选择使用 React Context 来传递其存储是一种众所周知的模式。 Zustand 是这种模式的先驱。人们对 React Context 中没有全局状态非常怀疑,我们很难解释这是一个有效的模式。
我对 Zustand 关心的事情之一是它的简单实现和它的小包大小。如果你查看源代码,你会发现它只不过是使用 React hooks 和最小的存储实现。
截至撰写本文时,Zustand v4 是最新版本,它具有非常先进的 TypeScript 支持,并且代码几乎完全从 v3 重写。我们的 Zustand v5 已经准备好迎接下一个版本了。
最后但并非最不重要的一点是,有几个贡献者维护这个项目。我接手这个项目的时候没想到会发生这样的事情。我对此非常感激。感谢大家。
","image":"http://www.luping.net/uploads/20240730/172233792466a8ca84b1d78.jpg","datePublished":"2024-07-30T19:12:03+08:00","dateModified":"2024-07-30T19:12:03+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}在这篇文章中,我想分享 Zustand 的发展背后的故事。准确地说,我不是 Zustand 的原作者,当 Zustand v0 诞生时,我正在开发其他全局状态库,尤其是 React-Tracked。顺便说一句,我现在认为自己是 Zustand 的(第二)作者。
我发现我的推文提到了 Zustand,并将其与其他库(包括我的库)进行了比较。
当时我的信念是全局状态应该通过 React Context 传递,以便它可以与 React 并发模式一起工作。因此,我制作了一个比较表来区分我的图书馆和其他图书馆,Zustand 就是其中之一。这是2019年的事情。
2020年,我加入了Poimandres团队并接管了Zustand的开发。当时我的兴趣是让全局状态库与 React 并发模式一起工作。不可能从并发模式中获得全部好处,但是有一个名为 useMutableSource 的实验性 API 可以使全局状态与并发模式兼容。
我使用基于 React Context 的解决方案和 React-Tracked 尝试了很多事情,并且想知道在没有 React Context 的情况下我们可以用全局状态做什么。 Zustand 已有一年了,但没有人维护它。于是,我决定接手。
实验性的 useMutableSource API 还没有准备好,所以第一个任务是更新各种内容并修复一些错误。这就是 Zustand v3 诞生的时候。我的希望是很快发布带有 useMutableSource 的 v4,但它没有发生。这背后还有一个故事。
如今,将全局状态置于外部并可选择使用 React Context 来传递其存储是一种众所周知的模式。 Zustand 是这种模式的先驱。人们对 React Context 中没有全局状态非常怀疑,我们很难解释这是一个有效的模式。
我对 Zustand 关心的事情之一是它的简单实现和它的小包大小。如果你查看源代码,你会发现它只不过是使用 React hooks 和最小的存储实现。
截至撰写本文时,Zustand v4 是最新版本,它具有非常先进的 TypeScript 支持,并且代码几乎完全从 v3 重写。我们的 Zustand v5 已经准备好迎接下一个版本了。
最后但并非最不重要的一点是,有几个贡献者维护这个项目。我接手这个项目的时候没想到会发生这样的事情。我对此非常感激。感谢大家。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3