介绍
- 以文件形式缓存数据,保存
Electron
应用程序或模块的简单数据持久性-保存和加载用户首选项,应用程序状态,缓存等 数据保存在 - app.getPath('userData')中的
JSON
文件中。您可以在主进程和渲染器进程中直接使用此模块
app.getPath(name)-储存你应用程序设置文件的文件夹,默认是 appData 文件夹附加应用的名称。 appData-当前用户的应用数据文件夹,默认对应: %APPDATA% Windows 中 $XDG_CONFIG_HOME or ~/.config Linux 中 ~/Library/Application Support macOS 中
安装
npm install electron-store
# 或者使用 yarn add electron-store
注:需要 Electron 5 或更高版本。如果安装失败,可以换成命令cnpm install electron-store(前提是安装了
cnpm)
基础使用
const Store = require('electron-store');
const store = new Store();
store.set('unicorn', '123');
console.log(store.get('unicorn'));
//=> '123'
// Use dot-notation to access nested properties
store.set('foo.bar', true);
console.log(store.get('foo'));
//=> {bar: true}
store.delete('unicorn');
console.log(store.get('unicorn'));
//=> undefined
// 判断是否存在
store.has('unicorn')
//=> false
获取本地存储路径
electron-store
以json
文件的形式将数据存储在本地文件,获取存储文件的目录如下:
const { app } = require('electron')
// 在程序中获取electron-store文件路径
app.getPath('userData')
window.localStorage 对比
localStorage
仅在浏览器进程(渲染进程)中起作用;localStorage
的容错性不是很高,因此,如果您的应用遇到错误并意外退出,则可能会丢失数据;localStorage
仅支持持久字符串,此模块支持任何JSON
支持的类型;localStorage
不是很安全,可能是由于xss
攻击而泄漏信息;electron-store
模块的API
更好,您可以设置并获取嵌套属性,您可以设置默认的初始配置。
vuex 对比
- 存储方式:
vuex
存储在内存,electron-store
则以文件的方式存储在本地,数据存储卸载应用之后依然存在; - 应用场景:
vuex
用于组件之间的传值,electron-store
则主要用于不同页面之间的传值; - 永久性:当刷新页面时
vuex
存储的值会丢失,localStorage
不会。