當時我的信念是全域狀態應該透過 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