跳過主要內容

Recoil 0.1.1

·閱讀 3 分鐘

歡迎使用 Recoil 版本 0.1.1!此版本有性能改進,並新增了幾個實驗性功能,例如:支援 React Native、在 React 之外使用快照,以及管理原子副作用(例如記錄、外部儲存同步、持久化等)的原子效果。

另外,現在可透過nightly 分支使用夜間組建

性能

多項變更可改善 Recoil 效能

  • 現在會批次處理在 useRecoilCallback() 中執行的更新,這樣便能避免複製資料結構或執行中間狀態的更新。這讓我們能夠在一趟迴圈中設定 5,000 個原子,我們的某些壓力測試執行的時間從 10 秒縮減至 25 毫秒。(@davidmccabe
  • 如果選擇器的依賴關係未變更,Recoil 現在也能避免在快取中查看選擇器值。這讓某些擁有複雜資料流程圖的應用程式速度提升了 30 至 40 倍。(@davidmccabe

React Native(實驗性

反作用力現在應可與 React 原生環境搭配使用。不過,這與伺服器端呈現類似,無獲得官方支援。(#114 - @jacques-blom@mondaychen)

Atom Effects (實驗性)

Atoms 的效果可簡化依照每個原子管理原子副作用政策的程序,而這屬於 atom()atomFamily() 定義的一部分。可將效果用於各種有趣的應用程式中,例如 記錄,或是與外部儲存體(例如 遠端資料庫本地端儲存體、瀏覽器網址歷程等)同步或持續保存狀態。舉例來說,你可以將 atom 當作使用者的部分狀態,並提供效果來訂閱伺服器上的變更,以更新本地端副本,同時也可讓本地端變更直接寫入並更新伺服器。(#680#380#381#384#385#448#449#412#591#634#682 @drarmstr@csantos4242)

針對測試的快照 (實驗性)

現在可 於 React 環境之外建立快照。這可能有助於在 React 環境之外進行 測試 或評估選取器。(#649 @drarmstr@habond)

錯誤修正

後續工作

在後續版本中,Recoil 將會自動釋放不再使用的 atom 和 selector 所使用的記憶體,對於大量 atom 的情況將會有更好的效能。(@davidmccabe)

釋出我們的 Chrome 開發人員工具原型。(@maxijb)

針對一般狀態持續性的效果函式庫,例如瀏覽器本地儲存空間或網址記錄。(@bezi)

感謝您持續對 Recoil 給予關注!