Electron是一个使用 HTML,CSS 和 JavaScript 来构建跨平台桌面应用程序的开源框架。它是由 Github 开发并开源的。 微信、Atom、Slack、Visual Studio Code 等都是基于 Electron 构建的。
Electron 是基于 Chromium 和 Node.js 开发的。因此它可以让开发者们使用 Node.js 强大的 API 来控制和管理应用程序,同时使用 Chromium 强大的运行时和页面构建桌面应用程序。
使用 Electron 开发小程序的最大优点就在于,它基于 Web 技术,可以跟移动端小程序和微信公众号的开发方式类似,开发成本相对较低。
Electron的原理如下:
1. Electron 使用了 Chromium 和 Node.js 的架构,提供了一个内置的浏览器的环境。这个浏览器环境被称作主进程。
2. 开发者将应用中所有的窗口集合置于主进程内,即使是我们熟悉的 “console.log()” 也在主进程的环境下执行。
3. 主进程获取了 Chromium 的全部功能,我们还可以从主进程内控制和管理所有应用程序窗口。
4. 每一个 窗口 都会被 Electron 创建一个独立的进程,称之为 渲染进程。
5. 每个 渲染进程 都包含一个绑定了浏览器环境的 Node.js 实例,它允许我们使用大多数 Node.js 模块,同时由于其全局作用域受到安全保护,更加安全。
6. 渲染进程 拥有渲染网页的能力,同时还拥有 Chromium 的广泛功能,如 CSS3、HTML5、JS 等等。
7. 主进程通过 IPC(Inter-process communications)机制控制渲染进程。
除此之外,Electron 还有许多功能,如调试工具、本地存储、前端框架等等,使得开发桌面应用程序变得更加简单。
总结来讲,Electron利用了 Chromium 和 Node.js 的架构,提供了一个主要的进程,控制和管理所有应用程序窗口,同时每个窗口(或页面)由独立的渲染进程进行。这个架构使得 Electron 在构建跨平台的桌面应用程序时,变得非常强大和灵活,并使得许多企业和开源组织愿意采用它,以构建界面友好的桌面应用程序。