人人都会AI编程

Store 插件:轻量级键值对持久化

更新时间:2026-07-11

在 Tauri 应用中,很多时候你只需要存储一些简单的配置,比如用户偏好、窗口位置、主题选择等。如果为此引入 SQLite 或手动管理 JSON 文件,未免有些小题大做。Tauri 的 Store 插件 正是为这种场景设计的:它提供一个轻量级的键值对存储,数据会自动持久化到磁盘,重启应用后依然可用。


如何使用

  1. src-tauri/Cargo.toml 中启用 tauri-plugin-store
   [dependencies]
   tauri-plugin-store = "2"
   
  1. tauri.conf.json 中注册插件,并声明需要的权限。例如:
   {
     "plugins": {
       "store": {}
     }
   }
   

权限配置中通常需要允许 store:allow-* 系列操作,具体可参考插件文档。

  1. 前端调用非常简单,就像使用浏览器的 localStorage 一样(但数据实际保存在独立文件中,更可靠):
   import { Store } from '@tauri-apps/plugin-store';

   // 创建一个 Store 实例,参数是文件名(不含扩展名)
   const store = new Store('settings.json');

   // 写入键值
   await store.set('theme', 'dark');
   await store.set('sidebarWidth', 240);

   // 读取键值(可以指定默认值)
   const theme = await store.get('theme');          // 'dark'
   const zoom = await store.get('zoom', 1.0);       // 1.0(因为不存在)

   // 判断键是否存在
   const hasKey = await store.has('theme');         // true

   // 删除键
   await store.delete('sidebarWidth');

   // 保存到磁盘(异步,通常自动完成,但可手动触发以确保写入)
   await store.save();
   

数据存放位置

Store 文件默认保存在应用的数据目录下(不同平台有各自的标准路径),例如:

  • Windows: C:\Users\<用户名>\AppData\Roaming\<应用名>\settings.json
  • macOS: ~/Library/Application Support/<应用名>/settings.json
  • Linux: ~/.local/share/<应用名>/settings.json

你可以创建多个 Store 文件来组织不同类别的数据,比如 user_prefs.jsoncache.json 等。


与 localStorage 的区别

虽然用法类似,但 Store 插件不是 localStorage 的简单替代:

  • 持久化更可靠localStorage 存活于 WebView 的缓存中,可能因清除浏览数据而丢失;Store 插件生成的是磁盘上的物理文件,不会被自动清理。
  • 空间不受限:WebView 的 localStorage 通常有 5–10 MB 限制,Store 没有硬性限制。
  • 可跨窗口共享:如果应用有多个窗口,它们共享同一个 Store 文件,数据天然同步。

典型场景

  • 保存窗口大小、位置,下次启动恢复原样;
  • 记录用户最近打开的文件列表;
  • 存储应用设置(语言、主题、快捷键映射);
  • 轻量级的离线缓存(如仪表盘最后一次获取的数据,避免空窗期)。

对于需要复杂查询或事务支持的数据,建议使用 tauri-plugin-sql;但对于简单的键值配置,Store 插件足够轻快,几乎零学习成本。