
Electron-基本介绍
使用 JavaScript,HTML 和 CSS 构建跨平台的桌面应用程序
建立在 Chromium 和 Node 之上,为我们提供了很多封装好的模块,跟系统原生 API 互通。
运行环境
- 浏览器上是 V8,可以操作 dom,bom
- node 上也是 v8,但是 node 具有操控操作系统的能力如文件读写
而 Electron 就是两者结合
- Chromium 为 Electron 提供了强大的 UI 能力,让我们采用吃饭家伙进行开发页面
- Electron 内部支持 NodeJS 模块,让我们在写 UI 的同时,能够拥有操作系统底层 API 的能力,比如常用的 fs、path、child_process 模块
Electron 还具有跨平台的特性,不同系统底层提供的 API 不同,但 Chromium、Node 本身就跨平台,帮我们处理了大部分跨平台的兼容问题
三大核心
- Chromium 用于显示网页内容。
- Node.js 用于本地文件系统和操作系统。
- Native APIs 用于使用经常需要的本机函数。
两大灵魂:主进程和渲染进程
主进程
- 一个 Electron 只会存在一个主进程,但它可以存在多个渲染进程,由于 Electron 使用了 Chromium 来展示 UI 界面 (应用程序中被称为 BrowserWindow),自然而然地,Chromium 的多进程架构也被引入。
当主进程每创建一个独立的 BrowserWindow 实例,Electron 都会初始化一个独立的渲染进程,隔离了不同窗口之间的环境
,每一个渲染进程,只需要关心自己内部的 Web 页面。
主进程特点
- 可以使用和系统对接的 ElectronAPI,比如菜单创建等
- 支持 NodeJS,在主进程可以任意使用 NodeJS 的特性
- 创建多个渲染进程
- 有且只有一个,并且是整个程序的入口文件
- 控制整个应用程序的生命周期
主进程调用 browserWindow
时,会生成一个渲染进程并对应一个浏览器窗口,渲染进程是负责渲染 Web 网页内容的。渲染进程的特点
- 可以使用部分 Electron 的 API
- 全面支持 NodeJS
- 存在多个渲染进程
- 可以访问 DOM API
进程通信
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 MichstaBe