chrome extension开发框架WXT之WXT Storage api解析

发布于:2025-04-10 ⋅ 阅读:(40) ⋅ 点赞:(0)

以下是对 WxtStorage 接口及其相关类型中各方法的参数、返回值、用法和适用场景的详细解释:

getItem 方法

getItem<TValue>(key: StorageItemKey, opts: GetItemOptions<TValue> & {
    fallback: TValue }): Promise<TValue>;
getItem<TValue>(key: StorageItemKey, opts?: GetItemOptions<TValue>): Promise<TValue | null>;
  • 参数
    • key:类型为 StorageItemKey,格式是 ${StorageArea}:${string},用于指定要获取的存储项的键。
    • opts:可选参数,类型为 GetItemOptions<TValue>,其中 fallback 为默认值。若提供 fallback 且未找到对应键值时,会返回该默认值;若不提供 fallback,未找到键值时返回 null
  • 返回值
    • 若提供 fallback,返回一个 Promise<TValue>,表示异步获取到的存储项值。
    • 若未提供 fallback,返回 Promise<TValue | null>,可能为存储项值,也可能为 null
  • 用法
// 获取值,未找到时返回 null
storage.getItem<number>("local:installDate").then(value => {
   
  console.log(value);
});

// 获取值,未找到时返回 fallback 值
storage.getItem<number>("local:installDate", {
    fallback: 0 }).then(value => {
   
  console.log(value);
});
  • 适用场景:需要从存储中获取单个值时使用,例如获取用户的安装日期、计数器值等。

getItems 方法

getItems(keys: Array<StorageItemKey | WxtStorageItem<any, any> | {
    key: StorageItemKey; options?: GetItemOptions<any>; }>): Promise<Array<{
    key: StorageItemKey; value: any; }>>;
  • 参数
    • keys:数组类型,元素可以是 StorageItemKeyWxtStorageItem 或者包含 keyoptions 的对象,用于指定要获取的多个存储项。
  • 返回值
    • 返回 Promise<Array<{ key: StorageItemKey; value: any; }>>,表示异步获取到的多个存储项的键值对数组。
  • 用法
storage.getItems(["local:installDate", "session:someCounter"]).then(items => {
   
  items.forEach(item => {
   
    console.log(item.key, item.value);
  });
});
  • 适用场景:需要同时获取多个存储项的值时使用,例如一次性获取用户的多个设置项。

getMeta 方法

getMeta<T extends Record<string, unknown>>(key: StorageItemKey): Promise<T>;
  • 参数
    • key:类型为 StorageItemKey,用于指定要获取元数据的存储项的键。
  • 返回值
    • 返回 Promise<T>,表示异步获取到的存储项的元数据对象。
  • 用法
storage.getMeta("local:installDate").then(meta => {
   
  console.log(meta);
});
  • 适用场景:需要获取存储项的元数据时使用,例如存储项的版本信息、创建时间等。

getMetas 方法

getMetas(keys: Array<StorageItemKey | WxtStorageItem<any, any>>): Promise<Array<{
    key: StorageItemKey; meta: any; }>>;
  • 参数
    • keys:数组类型,元素可以是 StorageItemKeyWxtStorageItem,用于指定要获取元数据的多个存储项。
  • 返回值
    • 返回 Promise<Array<{ key: StorageItemKey; meta: any; }>>,表示异步获取到的多个存储项的键和对应的元数据数组。
  • 用法
storage.getMetas(["local:installDate", "session:someCounter"]).then(metas => {
   
  metas.forEach(meta => {
   
    console.log(meta.key, meta.meta);
  });
});
  • 适用场景:需要同时获取多个存储项的元数据时使用。

setItem 方法

setItem<T>(key: StorageItemKey, value: T | null): 

网站公告

今日签到

点亮在社区的每一天
去签到