Electron 介绍(理论篇)
Electron 是一个能让你使用前端技术(JavaScript, HTML, CSS 和 Node.js)构建跨平台的桌面应用的框架。最初被 GitHub 开发,2013 年 4 月 11 日以 Atom Shell 为名起步,2014 年 5 月 16 日开源,2015 年 4 月 17 日改名为 Electron。
基于 Electron 实现的产品
VS Code, Atom 等。
Electron 组成
Electron 主要由 Node.js、Chromium 和封装好的系统 API 三大部分组成。
在 Electron 构建的程序里,Chromium 负责页面渲染进程,Node.js 负责程序的逻辑部分,开发中可以使用所有 Node.js 的原生 API,也可以使用 npm 平台上的所有模块。使用 Electron 的 API 可以实现如通知、自定义 Windows 任务栏/macOS Dock、最近文档等操作系统原生功能。
Electron 进程
Electron 有两种进程,分别是主进程和渲染进程。
主进程只能有一个,负责调用 Electron 的 API 实现系统功能,控制应用的生命周期,创建单独的渲染进程来加载 web 页面等。
每个单独的 web 页面都运行在属于它自己的渲染进程中,是相互独立的。这意味着某一个渲染进程崩溃了,并不会影响到其它的渲染进程。渲染进程负责渲染页面和处理相应的页面交互。有一点需要注意的是,渲染进程并不能直接调用与 GUI 相关的原生 API (比如操作系统菜单、创建新窗口等),因为渲染进程等于是使用的 Chromium 来展示 web 页面,在 web 页面中,直接操作原生的 GUI 资源是非常危险的,而且容易造成资源泄露。如果想要在渲染进程内使用 GUI 操作,可以与主进程产生通讯,请求主进程调用相应的 API 来操作。
Electron 优缺点
优点:
快速构建跨平台(Windows、macOS、Linux)的桌面级应用
因为使用 Node.js 开发,所以 npm 平台下的包都可以使用,提升开发效率,避免重复造轮子
有很多现成的 UI 框架可以使用
缺点:
安装包体积略大(打包了 Chromium)
性能不如原生应用