Map 类型的 store

与 Set 类型一样,Map 类型也是原生 JavaScript 的数据结构,可以用来存储键值对。Map 也同样将数据保存在一个不可见的位置,同样使 Valtio 无法追踪到。针对 Map 类型的使用需要,Valtio 提供了 proxyMap 函数来创建一个可追踪的模仿 Map 类型行为的 store。

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

import { proxyMap } from "valtio/utils";

const state = proxyMap();

state.set("key1", "value1");
state.set("key2", "value2");
state.delete("key1");
state.forEach((value, key) => {
  console.log(key, value);
});

proxySet 创建的模仿 Set 类型行为的 store 一样,proxyMap 创建的模仿 Map 类型行为的 store 也实现了原生 Map 类型的所有方法,因此可以像使用原生 Map 类型一样使用它。