概述
Electron 基于 Chromium 和 Node.js, 让你可以使用 HTML, CSS 和 JavaScript 构建应用。
Electron 兼容 Mac、Windows 和 Linux,可以构建出三个平台的应用程序。
应用程序结构
Electron包含三个核心:
- Chromium用于显示网页内容。
- Node.js用于本地文件系统和操作系统
- 自定义APIs用于使用经常需要的OS本机函数
用 Electron 开发应用程序就像构建一个带有网页界面的 Node.js 应用程序或构建无缝集成的网页。
主进程和渲染进程
如前所述,Electron 有两种进程:主进程(Main)和渲染进程(Renderer)。
- 主进程通过创建BrowserWindow实例来创建网页。 每一个BrowserWindow实例在其渲染过程中运行网页, 当一个BrowserWindow实例被销毁时,对应的渲染过程也会被终止。
- 主进程管理所有网页及其对应的渲染进程。
- 渲染进程只能管理相应的网页, 一个渲染进程的崩溃不会影响其他渲染进程。
- 渲染进程通过 IPC 与主进程通信在网在页上执行 GUI 操作。 出于安全和可能的资源泄漏考虑,直接从渲染器进程中调用与本地 GUI 有关的 API 受到限制。
进程之间的通信可以通过 Inter-Process Communication(IPC) 模块进行:ipcMain和ipcRenderer
APIs
Electron API
Electron API 是根据进程类型分配的。这意味着某些模块可以在主进程或渲染进程中使用,有些模块两者中皆可使用。 Electron 的 API 文档注明了各个模块可以分别用在哪个进程中。
Node.js API
注意:从渲染进程访问 Node.js API,您需要设置nodeIntegration的值为true同时contextIsolation的值为false。 请注意,出于安全因素,不建议任何渲染器访问Node.js API加载远程内容。
Electron 在主进程和渲染进程中都暴露了对 Node.js API 及其模块的完全访问权限
资料
快速入门帮助资料
初识 Electron,可参考下列资料,了解如何使用 Electron 封装你的前端代码,调用丰富的 API,以及生成安装程序。
- Electron API 示例程序
- Electron Fiddle。你可以使用 Electron Fiddle 创建并运行小段 Electron 程序,从一个简单的模板开始,随心所欲地挥洒你的创意,选择一个 Electron 版本欣赏运行效果。最后,你可以将其下载保存,或推送 GitHub Gist 上,所有人都可以输入网址运行你的 Fiddle。
快速启动 应用程序。一个简单的Electron应用程序,看看Electron是如何运转的。
博客文章
介绍Electron的由来,优缺点,生态:Electron是什么?
- Electron爬坑总结:桌面端框架Electron使用问题整理和总结;想要试试Electron ,不如看看这篇爬坑总结
- Electron打包及优化:利用 electron-builder 实现 electron app 的署名/打包/发布以及自动更新;electron打包:electron-packager及electron-builder两种方式实现(for Windows);【electron-playground系列】打包优化之路,electron-packager交叉打包
- 基于vue cli搭建electron开发,讲解electron开发流程及一些常见问题:从零开始的electron开发
- Electron自动更新系列博客:研究Electron自动更新 系列一;研究Electron自动更新 系列二;
- Electron增量更新和全量更新:我是如何实现electron的在线升级热更新功能的?;Electron 在线热升级方案;Electron客户端场景化更新升级方案实践;Electron~增量更新和全量更新
- 基于Create-React-App搭建Electron App框架:Electron+React+Antd工程搭建,Electron+React+Antd(2)工程搭建
- 基于Umi搭建Electron App框架