跳到主要内容

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 (实验性)

Recoil 现在应该可以与 React Native 环境一起使用。 但是,与服务器端渲染类似,它并不正式支持。 (#114 - @jacques-blom@mondaychen)

原子效果 (实验性)

原子效果 简化了对原子副作用策略的管理,作为 atom()atomFamily() 定义的一部分,在每个原子基础上进行管理。 效果可用于一些有趣的应用,例如 日志记录 以及与外部存储(如 远程数据库本地存储、浏览器 URL 历史记录等)的状态同步或持久化。 例如,您可以使用原子作为某些用户状态的本地副本,并提供一个效果来订阅服务器上的更改,以更新本地副本,并使本地更改写入并更新服务器。 (#680#380#381#384#385#448#449#412#591#634#682 @drarmstr@csantos4242)

用于测试的快照 (实验性)

现在可以在 React 上下文之外构建快照。 这对于测试 或在 React 上下文之外评估选择器很有用。 (#649 @drarmstr@habond)

错误修复

未来工作

在将来的版本中,Recoil 将自动释放不再使用的原子和选择器使用的内存,并且在原子数量较多时将表现得更好。 (@davidmccabe)

发布我们的原型 Chrome 开发者工具。 (@maxijb)

针对常见状态持久化(如浏览器本地存储或 URL 历史记录)的效果库。 (@bezi)

感谢您对 Recoil 的持续关注!