Set 类型的 store

原生的 Set 类型在 Javascript 中使用比较普遍,但是因为其将数据保存在一个不可见的位置,所以 Valtio 不能对其中保存的数据进行追踪。因此,Valtio 提供了一个 proxySet 函数,允许创建一个模仿 Set 类型行为的 store。

通过 proxySet 创建的 store 可以如以下示例中的方式使用。

import { proxySet } from "valtio/utils";

const state = proxySet([1, 2, 3]);

state.add(4);
state.delete(2);
state.forEach((value) => {
  console.log(value);
});

除了以上示例中出现的方法以外,proxySet 构建的 store 实现了原生 Set 类型的所有方法,因此可以像使用原生 Set 类型一样使用它。

Tip

如果所要存储的数据不需要 Set 类型提供的额外功能,那么完全可以使用简单的列表和对象来替代,而不是使用 Set。