整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

Electron-store本地存储功能

*Electron-store:解锁本地存储功能,为桌面应用赋予持久化能力**

随着前端技术的发展与创新,桌面应用程序的构建已经不再局限于传统的原生语言开发。 Electron框架的出现,使得使用JavaScript、HTML和CSS开发跨平台桌面应用成为可能。而在 Electron 应用中,数据持久化是至关重要的环节之一。今天,我们就将深入探讨 Electron 生态中的一个强大工具——**Electron-store**,它为 Electron 应用提供了便捷、安全且高效的本地存储功能。

**一、Electron-store简介与安装**

**Electron-store** 是基于 Node.js 的 `conf` 包封装而成,专为 Electron 应用设计,提供了一种简单易用的方式来存储和读取用户配置或应用状态信息。其内部采用 JSON 格式进行数据存储,支持多级嵌套对象,且具有自动类型转换、深度合并等特性,极大地简化了开发流程。

**安装 Electron-store:**

在你的 Electron 项目中,通过 npm 或 yarn 添加 electron-store 依赖:

```bash

npm install electron-store --save

# 或者

yarn add electron-store

```

**二、快速上手 Electron-store**

**1. 初始化存储实例**

首先,我们需要在主进程中创建一个 Electron-store 实例。实例化时,可以指定存储文件的名称及路径(默认为 `config.json`):

```javascript

const { app } = require('electron');

const Store = require('electron-store');

const store = new Store({

name: 'my-app-config',

// 存储路径,默认为 app.getPath('userData')

// path: app.getPath('home') + '/.my-app'

});

// 设置默认值

store.setSchema({

user: {

type: 'object',

properties: {

name: {

type: 'string',

default: 'John Doe'

},

email: {

type: 'string',

format: 'email',

default: 'john.doe@example.com'

}

}

},

theme: {

type: 'string',

enum: ['light', 'dark'],

default: 'light'

}

});

```

**2. 数据读写操作**

Electron-store 提供了直观的 API 来进行数据的读取、写入、删除等操作。

**读取数据:**

```javascript

// 获取整个配置对象

const config = store.store;

// 获取特定键的值

const userName = store.get('user.name');

const theme = store.get('theme');

console.log(userName); // 输出: "John Doe"

console.log(theme); // 输出: "light"

```

**写入数据:**

```javascript

store.set('user.name', 'Jane Doe');

store.set('theme', 'dark');

// 更新嵌套对象

store.set('user', {

name: 'Alice Smith',

email: 'alice.smith@example.com'

});

```

**删除数据:**

```javascript

store.delete('user.email'); // 删除特定键

store.delete('user'); // 删除整个嵌套对象

```

**三、进阶功能与实战应用**

**1. 数据监听与更新**

Electron-store 支持对数据变化进行监听,便于实时响应用户设置的变更或同步应用状态:

```javascript

store.onDidChange('theme', (newValue, oldValue) => {

console.log(`Theme changed from ${oldValue} to ${newValue}`);

// 更新应用主题样式...

});

store.watchKeys(['user.name', 'user.email'], (key, newValue, oldValue) => {

console.log(`${key} changed from ${oldValue} to ${newValue}`);

// 更新用户信息视图...

});

```

**2. 序列化与反序列化**

Electron-store 内部已处理好 JSON 序列化与反序列化,但如果你需要自定义序列化逻辑,可以通过以下方式实现:

```javascript

const CustomStore = require('electron-store');

class MyStore extends CustomStore {

serialize(val) {

return JSON.stringify(val, null, 2); // 自定义缩进格式

}

deserialize(val) {

return val ? JSON.parse(val) : {}; // 处理可能的空值

}

}

const myStore = new MyStore();

```

**3. 实战案例:用户首选项管理**

在实际开发中,Electron-store 可用于实现各种应用场景,如用户首选项管理。以下是一个简单的示例:

```javascript

// 主进程中

const { ipcMain } = require('electron');

const store = require('./store');

ipcMain.handle('get-preferences', () => store.store);

ipcMain.handle('update-preferences', (event, preferences) => {

store.store = preferences;

return true;

});

// 渲染进程中

const { ipcRenderer } = require('electron');

async function getPreferences() {

const prefs = await ipcRenderer.invoke('get-preferences');

// 更新 UI 显示偏好设置...

}

function updatePreferences(newPrefs) {

ipcRenderer.invoke('update-preferences', newPrefs)

.then(() => {

// 成功更新后执行相关操作...

})

.catch((err) => console.error(err));

}

```

**四、最佳实践与注意事项**

**1. 安全性考虑**

尽管 Electron-store 已经对数据进行了加密存储(在 macOS 和 Windows 上),但仍需注意敏感信息的处理。对于密码、密钥等高度敏感数据,建议结合使用专门的加密库,如 `crypto-js`,并在应用层进行额外加密。

**2. 数据备份与迁移**

考虑到用户可能需要在不同设备间迁移数据或进行数据恢复,可以提供导出/导入配置的功能。使用 `store.store` 获取整个配置对象,然后将其序列化为 JSON 字符串保存到文件或云端。

**3. 与主进程通信**

由于 Electron-store 在主进程中初始化,渲染进程中直接访问可能会引发跨进程通信问题。推荐通过 IPC(Inter-Process Communication)机制与主进程交互,如上述实战案例所示。

**总结**

Electron-store 作为一款专为 Electron 应用设计的本地存储解决方案,以其简洁的 API、强大的功能以及良好的扩展性,为开发者提供了便捷的数据持久化途径。熟练掌握并运用 Electron-store,不仅能提升 Electron 应用的用户体验,更能使应用具备更高级别的定制化与个性化能力。希望本文能帮助你在 Electron 开发过程中更好地利用 Electron-store,打造出更具吸引力的桌面应用程序。

# 网页文本禁止复制粘贴?一分钟学会8种方法轻松突破限制

段子手168


方法一:代码破解法

打开你需要复制内容的网页,在浏览器地址栏输入“javascript:void($={});”这串代码,

然后按下回车键,这时候就允许你复制文本了。

方法 二:打印网页法

我们还可以利用打印网页的时候,在预览页面将文本复制下来。按下快捷键【Ctrl+P】,

将会进入打印界面,直接在右侧的预览界面,选中文本进行复制。

方法三:后台控制端

打开网页后,按下功能键【F12】,进入网页后台找到【Console】,

在下面输入这串符号“$=0”,再2按下回车键,

网页文字就能自由复制了。

方法四:查看源代码

你还可以在网页空白处,右击选择【查看页面源代码】,然后一直向下滑动,找到密密麻麻的文本,

选中直接复制提取出来。

方法五:保存本地网页

打开网页鼠标右击,选择【网页另存为】,然后在弹出的窗口中,

将保存类型改为【网页,仅HTML】,接着点击【保存】。

关闭当前网页,回到桌面找到刚刚保存的本地网页文件,双击打开后,就可以随意复制啦。

方法六:截图识别文字

此外,我们还可以利用OCR文字识别技术,将网页文字识别出来。

需要借助掌上识别王工具,找到【文字识别】-【快速截图识别】功能。

方法七:

网址最前面加上 read: (用 Microsoft Edge 浏览器打开)

方法八:

1)按 F12 打开调试框,点击右上角【设置】。

2)往下拉,找到 【Debugger】

3)勾选 【Disable JavaScript】

4)返回页面,按 F5 刷新一下页面,这样网页文字就可以复制了。

臭:HTML5

在上一篇中我们讲到了HTML的基本的完整的HTML文档,那么自然的,在这一篇中我将为大家详细描述我们应该如何编写我们的HTML文件!前面也说过,HTML文件的编写十分简单,没有任何编程经验的人也能够随意编写出一个HTML文件!接下来我就带领大家通过实际操作来编写我们的第一个HTML文件!

臭臭:!!!

在这里需要给大家说明,既然是零基础的教程,上来就开始搞HTML5是行不通的,因为大家知道这是HTML的最新版,很多人是没有HTML的基础的,那么我们就教大家从基础开始,先学会基础的HTML文件,深入浅出的去学习HTML5,跟着我们每天一节,肯定能学会网页前端,一定要注意,刚开始我们学习的是HTML的基本一些基础,HTML5会逐渐给大家带入,千万别喷楼主说这压根不是HTML5!OK。

首先来一个最为简单的编写方式!在电脑桌面右击→新建→记事本!打开记事本,写入下面的HTML代码,当然,元素之间嵌套的汉字大家是可以随意更改的!注意,除了汉字在中文输入法下使用,剩下的一律切换到英文输入法下进行输入,否则会出现错误,很多新手就犯了这个毛病!这里给大家写出代码。附上图片效果!

<html>

<head>

<title>我的第一个网页</title>

</head>

<body text="blue">

<h2 align="center">网页中的内容显示</h2>

<hr>

<p>段落文字</p>

</body>

</html>

臭臭:文本编写

编写完成之后,剩下的一定要注意了,选择记事本左上角的文件→另存为,然后选择自己想要保存的文件夹,如果怕找不到就保存到桌面!保存类型选择‘所有文件’,编码方式选择‘ANSI’,切记不要出现编码错误,否则的话网页会显示出乱码!命名为index.html,这里的index可以换成别的名字,但是.html不能够替换成别的!改好之后点击保存,然后关闭记事本!

臭臭:这三点要注意

最终用浏览器打开这个文件,效果如下:

臭臭:效果图

这里再次给大家强调一下我们编写HTML文件需要注意的地方:

  • 任何标签的开始和结束为‘<’和'>'!

  • 标签与标签之间可以嵌套,这个在以后的课程中我们会详细讲到!

  • 源代码中标签不区分大小写,也就是说<Head>和<head>以及<HEAD>它们的作用效果是一样的

  • 任何空格以及回车在源代码当中不起到任何作用!

  • 标签中可以放置各种属性。比如上面写到的<body text = "blue">其中的text代表的是属性,而blue代表的是属性值,它的作用就是让<body>中的文字变成蓝色!

  • 添加注释“<!--”开始"--!"结束,中间放注释的内容。例“<!--这是注释--!>”,注释仅仅起到解释说明此段代码的作用,在浏览器中不会有任何显示,是给开发者看的!

这就是我们最简单的一个编写方法,而在接下来我们就要用到我们的编辑器了,有同学就会问,我用记事本就很好的,不用下载,即开即用,为嘛还要编辑器!这里你只是写了一小段代码,当你有大量的代码时,或者在书写过程中有一个地方出现错误,你又该如何,又该怎么办呢?这个时候,编辑器的优越性就体现出来了!编辑器可以对代码进行高亮显示,看起来超级好,还有智能纠错,代码自动填充等一系列好处,用了你就知道了!这里我推荐的是WebStorm,不吹不黑,真的好!需要的用户可以自行下载,这里具体的下载方法我就不说了,百度一下一堆就出来了,推荐大家用正版,虽然收费,但是你实在不想的话就下个破解版,有中文版的也有英文的,适合自己就行了!

臭臭:webstorm

编辑界面以及高亮显示如下:

臭臭:显示界面

OK!这就是这节课的主要内容,有什么疑问或者建议就在下方留言,我一定会帮助大家解决问题,谢谢大家!

臭臭:HTML5