Electron学习笔记

环境搭建

npm install -g yarn
yarn initgit clone git@gitee.com:zzf35/electron-quick-start.git
cd electron-quick-start
将electron镜像文件加入文件夹中
npm i
npm run start

快速入门工具地址

  • https://www.electronjs.org/fiddle

package.json 配置

"start": "nodemon --watch main.js --exec \"electron .\""

主进程 - Main Preocess

  • 可以使用和系统对接的Electron API -创建菜单,长传文件等
  • 创建 渲染进程 - Renderer Process
  • 全面支持 Node.js
  • 只有一个,作为整个程序的入口点

渲染进程 - Renderer Prodess

  • 可以有多个,每个对应一个窗口
  • 每个都是一个单独的进程
  • 全面支持Node.js 和 DOM API
  • 可以使用一部分Electron 提供的API

进程之间的通讯方式

  • 使用IPC在进程之间进行通讯

Domo

main.js

const {app ,BrowserWindow , ipcMain} = require('electron')app.on('ready',() => {// 创建主窗口const mainWindow = new BrowserWindow({width: 800,height: 600,webPreferences: {// 可以使用node.js 的 APInodeIntegration: true}})// 调用文件mainWindow.loadFile('index.html')// 第一个是事件对象(复杂结构),第二个接受的事件数据ipcMain.on('message',(event,arg)=>{console.log(arg)// event.sender -触发该事件的发送者 === mainWindowevent.sender.send('reply', 'hello from main') })// 创建子窗口const secondWindow = new BrowserWindow({width: 800,height: 600,webPreferences: {// 可以使用node.js 的 APInodeIntegration: true},parent:mainWindow  // 依赖父窗口,当父窗口关闭,子窗口也关闭})// 调用文件secondWindow.loadFile('second.html')
})

renderer.js

const { ipcRenderer } = require('electron')window.addEventListener('DOMContentLoaded', () => {ipcRenderer.send('message', 'hello from renderer') // 事件名称,事件数据ipcRenderer.on('reply', (event, arg) => {document.getElementById('message').innerHTML = arg;})
})

使用Electron store 持久化数据

  • 主进程与渲染进程都可以使用
  • app.getPath(‘userData’) 查看保存数据的文件位置

使用方式

  1. npm install electron-store --save
const Store = require('electron-store');const store = new Store({'name':'DATA_NAME'}); // 重命名
// 设置
store.set('key', '												

Electron学习笔记相关推荐

  1. Electron学习笔记(五) 通过Addon(n-api)实现可扩展接口

    Electron学习笔记(四) Electron使用的API接口 一方面electron给开发者提供了不少API, 另一方面, 也可以使用node.js的API. 但是, 有时候开发者还是想用自己实现 ...

  2. Electron学习笔记(技术胖)

    Electron学习笔记(技术胖) 标签(空格分隔): 前端 桌面 技术胖 Electron 安装 前提:已经安装node,并且是10以上的版本 cnpm install electron --sav ...

  3. Electron学习笔记 4 添加系统功能

    通知 (Windows, Linux, macOS) 所有三个操作系统都提供了应用程序向用户发送通知的手段. Electron允许开发者使用 HTML5 Notification API 发送通知,并 ...

  4. 无人驾驶车辆路径规划及轨迹跟踪控制学习笔记(2)

    目录 汇总 学习笔记 汇总 在关键交通场景中,轨迹规划和轨迹跟踪控制是自动驾驶车辆避免碰撞的两个关键.它不仅需要系统功能,而且需要强大的实时性. 我们集成了自动驾驶汽车的轨迹规划器和跟踪控制器,通过轨 ...

  5. Effective Java(第三版) 学习笔记 - 第四章 类和接口 Rule20~Rule25

    Effective Java(第三版) 学习笔记 - 第四章 类和接口 Rule20~Rule25 目录 Rule20 接口优于抽象类 Rule21 为后代设计接口 Rule22 接口只用于定义类型 ...

  6. ARM学习笔记--LPC1788引脚分析

    http://zgmgypb.blog.163.com/blog/static/962028192012730104640980/ RM学习笔记--LPC1788引脚分析 一.电源分析 要弄清楚单片机 ...

  7. Elasticsearch-7.x学习笔记

    本文转载自:阅读原文 文章目录 1. 单节点安装 2. ES安装head插件 3. Elasticsearch Rest基本操作 REST介绍 CURL创建索引库 查询索引-GET DSL查询 MGE ...

  8. 深度学习与智能故障诊断学习笔记(一)——故障诊断体系介绍

    1.引言 智能故障诊断(IFD)是指将机器学习理论,如人工神经网络(ANN).支持向量机(SVM)和深度神经网络(DNN)应用于机器故障诊断.这种方法利用机器学习理论,从采集的数据中自适应地学习机器的 ...

  9. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

最新文章

  1. 注意力机制的两种形式
  2. 智能检测营销是否合规,网易易盾发布广告合规检测解决方案
  3. excel导入数据库的简单方法
  4. ARP攻击实战之WinArpAttacker
  5. 18 Context与组合的应用场景与使用问题
  6. error记录 | 不能将参数 1 从“const char [5]”转换为“LPCTSTR
  7. 关于OSI七层模型详细解释
  8. vuedraggable能实现自由拖拽功能吗?_基于 vue.js 仿禅道主页拖拽效果
  9. Vant - 高效的 Vue 组件库,再造一个有赞移动商城也不在话下
  10. HashMap简单源码及多线程下的死循环
  11. Ospf Forwarding address路由选路的影响
  12. kaldi运行yesno例程
  13. C++-网络库:Poco概述【开源的C++类库的集合】【提供简单的、快速的网络和可移植应用程序的C++开发】【和C++标准库可以很好的集成并填补C++标准库的功能空缺】【适合嵌入式开发】
  14. gcc compile : assignment of read-only location '*p'
  15. 孩子做作业用计算机,小学五年级写作业让用计算机吗
  16. 知识星球《玩转股票量化交易》精华内容概览-2023扬帆起航
  17. 基于 Qt Quick+websocket 的Web扫描仪驱动开发
  18. linux显卡驱动安全模式,Win7怎么在安全模式下安装显卡驱动?
  19. 基于运放的功率放大器设计
  20. 传球游戏(动态规划dp NOIP2008)

热门文章

  1. 电脑pro,iPad Pro 2018体验:这个电脑,不是一般的电脑
  2. Java基础算法题(02):古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
  3. Code Review的亲身实践
  4. 乙基己基巯基乙酸盐行业调研报告 - 市场现状分析与发展前景预测
  5. 微信中接收的word文件怎样保存到电脑
  6. 计算机期刊论文初稿怎么写,论文初稿可以只写大概内容吗 写初稿应注意些什么问题...
  7. 【学习SQL数据库】并发操作引起的数据库不一致
  8. 一个C类地址192.168.1.0划分5个子网,每个子网至少要容纳30台主机,如何规划?...
  9. PL/SQL 基础知识
  10. 开源免费的图片压缩软件,从50M到50K,极力安利