• electronstore


    介绍

    • 以文件形式缓存数据,保存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

    使用

    const Store = require('electron-store');
    
    let option={
        name:"config",//文件名称,默认 config
        fileExtension:"json",//文件后缀,默认json
        cwd:app.getPath('userData'),//文件位置,尽量不要动,默认情况下,它将通过遵循系统约定来选择最佳位置。C:\Users\xxx\AppData\Roaming\test\config.json
    //    encryptionKey:"aes-256-cbc" ,//对配置文件进行加密
        clearInvalidConfig:true, // 发生 SyntaxError  则清空配置,
    }
    const  store = new Store(option);
    
    // 一般直接简化为
    const Store = require('electron-store');
    
    const  store = new Store();

    设置、获取数据

    .set(key, value)

    .set(object)

    .get(key, [defaultValue]) 获取一个数据或defaultValue(如果该数据不存在)。

    .reset(…keys) 将项目重置为其默认值

    .has(key)
    .delete(key)

    .clear()
    .size

    .path 获取存储文件的路径。

    示例:

    store.set('unicorn', '这是需要存储的内容');
    console.log(store.get('unicorn')); //=> '这是需要存储的内容'
    
    // 使用点表示法访问嵌套属性
    store.set('foo.bar', true);
    console.log(store.get('foo')); //=> {bar: true}
    
    // 嵌套存储
    store.set({
    	foo: {
    		bar: {
    			foobar: 'hahaha'
    		}
    	}
    });
    console.log(store.get('foo.bar.foobar'));
    
    store.delete('unicorn');
    console.log(store.get('unicorn'));  //=> undefined
    
    
    

    为什么不使用window.localStorage

    • localStorage仅在浏览器进程(渲染进程)中起作用。

    • localStorage的容错性不是很高,因此,如果您的应用遇到错误并意外退出,则可能会丢失数据。

    • localStorage仅支持持久字符串。 此模块支持任何JSON支持的类型。

    • localStorage不是很安全,可能是由于xss攻击而泄漏信息。

    • electron-store模块的API更好。 您可以设置并获取嵌套属性。 您可以设置默认的初始配置。

    各存储区别

    • vuex存储在内存,localstorage则以文件的方式存储在本地,electron-store数据存储卸载应用之后依然存在。

    https://xushanxiang.com/electron-store.html#top
  • 相关阅读:
    Prim算法以及Kruskal算法
    PAT甲级考前整理(2019年3月备考)之三,持续更新中.....
    PAT甲级考前整理(2019年3月备考)之一
    PAT甲级考前整理(2019年3月备考)之二,持续更新中.....
    linux下挂载U盘
    opencv2已有的情况下,安装opencv3以及对应的opencv_contrib
    二维数组和二级指针做函数参数的问题
    ubuntu14.04下 python2.7怎么链接到安装在指定文件夹的opencv3
    使用opencv的nonfree模块
    PaddlePaddle开源平台的应用
  • 原文地址:https://www.cnblogs.com/luckyuns/p/16420048.html
Copyright © 2020-2023  润新知