本地存储方案(electron数据存储)
2026.3.31。对比集中数据存储的方式,最终选择了Dexie.js 封装 IndexedDB,提供更好的异步支持,简化IndexDB的API。
2026.3.31 星期二
1.本地文件存储(文件或者 localStorage)
-
特点:简单易用,数据以文件形式存储在本地。
-
优点:易于实现和维护。
-
缺点:对于大量数据或需要复杂查询的应用,性能可能受限。通常有较小的存储容量限制(LocalStorage 通常是 5MB),对于大规模数据存储可能不够。
2.electron-store
链接:https://github.com/sindresorhus/electron-store
-
特点:Electron 官方推荐的轻量级持久性数据存储解决方案,本质也是一个 json 文件,和本地文件类似。
-
优点:支持主进程和渲染进程共享数据,良好的 API 和文档。
-
缺点:适用于小规模数据,对于大规模数据可能性能不足。
3.SQLite
-
特点:轻量级关系型数据库,是世界上使用最多的轻量级数据库,提供 SQL 查询语言支持。
-
优点:适用于需要复杂查询和事务的应用,性能较好。
-
缺点:相比 IndexedDB,集成到 Electron 中可能需要更多工作。
4.IndexedDB
链接:https://developer.mozilla.org/zh-CN/docs/Web/API/IndexedDB_API
- 特点:基于浏览器的客户端存储技术,支持异步操作。
- 优点:适用于存储大量结构化数据,支持索引、事务等功能,性能较好。
- 缺点:复杂度较高,需要处理异步编程。
| 方案 | 核心特点 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| 本地文件存储(文件 /localStorage) | 简单本地存储,数据以文件或键值对保存 | 易实现、易维护 | 容量有限(localStorage 约 5MB),大量数据 / 复杂查询性能差 | 小体量、无复杂查询的轻量应用 |
| electron-store | Electron 推荐的 JSON 文件存储,本质是本地文件 | 主 / 渲染进程共享数据,API 友好,文档完善 | 仅适合小规模数据,大数据量性能不足 | Electron 桌面应用的轻量配置 / 状态存储 |
| SQLite | 轻量级关系型数据库,支持 SQL 查询 | 支持复杂查询、事务,性能较好 | 集成到 Electron 需额外工作 | 有复杂查询、事务需求的中大型应用 |
| IndexedDB(原生) | 浏览器标准客户端存储,支持异步操作 | 适合大量结构化数据,支持索引 / 事务,性能较好 | API 复杂,需处理异步编程 | Electron 中需大量结构化数据、异步操作的场景 |
| IndexedDB + Dexie.js | 用 Dexie.js 封装 IndexedDB,简化使用 | 简化 API、更好异步支持、简化数据模型、性能优化 | 仍需学习封装库 | 需 IndexedDB 能力但想降低开发复杂度的场景 |
当前这个electron项目的数据
-
多个相关数据结构
-
数据结构之间的关联
-
大规模数据
-
异步操作需求
所以选择 IndexedDB
-
性能:适合存储大量结构化数据,具有良好的性能表现。
-
标准化:作为浏览器标准,与 Electron 集成较为简单。
-
功能:支持索引、事务等功能,可满足复杂需求。
-
异步操作:适合 Electron 中的异步编程模型。
但是原生IndexedDB因为是浏览器自带的底层数据库 API。有很多缺点:
API极其繁琐,代码量大。不支持promise。查询语法复杂。版本管理麻烦等等。
所以使用 Dexie.js 封装 IndexedDB
https://dexie.org/docs/Tutorial/Vue
-
简化 IndexedDB 的 API
-
提供更好的异步支持
-
简化数据模型
-
性能优化
Dexie.js

1.插入数据
在渲染进程App.vue中写

npm start可得

可见已经将数据插入成功了。
其中值中就是provider测试数据

2.查询数据

可在控制台查看

也可以根据id值来查找具体某一项(通过where方法)
const providers = await db.providers.where({ id: 1 }).toArray();
console.log('providers', providers);
3.更新数据


4.删除数据


undefined说明删除成功。也可自行查看数据库发现确实删除成功。
其它详细用法请查文档
链接:https://dexie.org/(11.2k Stars)
更多推荐
所有评论(0)