10分钟部署一个个人博客

阅读 14

2024-06-15

useSyncExternalStore 是 React 18 中引入的一个自定义 Hook,它允许你订阅外部存储(例如 Redux、MobX、或任何其他非 React 状态管理库)并在外部存储更新时更新你的 React 组件。这对于那些不是建立在 React 状态管理之上的外部存储特别有用。

作用

  1. 非状态数据变化触发 UI 更新useSyncExternalStore 可以让你在 React 外部定义一个状态,并在该状态变化时触发 UI 的更新。
  2. 订阅外部存储:它接收一个回调函数作为参数,并将其订阅到外部存储上。当外部存储更新时,这个回调函数会被触发,从而更新组件。

使用方法

使用 useSyncExternalStore 时,你需要提供三个函数作为参数(其中第三个是可选的):

  1. subscribe 函数

    • 作用:订阅外部存储,并在存储变化时调用提供的回调函数。
    • 参数:一个单独的 callback 参数,用于在存储变化时触发。
    • 返回值:一个取消订阅的函数。
  2. getSnapshot 函数

    • 作用:从外部存储读取数据的快照。
    • 返回值:组件需要的存储中的数据快照。注意,这个函数在存储不变的情况下应返回相同的值。
  3. getServ

精彩评论(0)

0 0 举报