如果想开发一个桌面 GUI 应用软件,希望其能同时在 Windows、Linux 和 Mac 平台上运行,可选的技术框架并不多,在早期人们主要用 wxWidgets、GTK 或 Qt 来做这类工作。这三个框架都是以 C/C++ 语言开发,受语言开发效率的限制,开发者想通过它们快速完成桌面应用的开发工作十分困难。
Electron 框架出现后,传统桌面应用开发的难点,现在看来也变得异常容易,且开发效率更高。比如,简单界面绘图可以使用 HTML 的 SVG 或 Canvas 技术实现,简单动效就可以用 CSS Animations 或 Web Animations API 来实现,复杂的动效、图形处理、音视频处理等可以借助 Node.js 的原生 C++ 模块实现。
为了弥补 Node.js 和前端技术访问系统 API 方面的不足,Electron 还对系统 API 做了封装,比如:系统对话框、系统托盘、系统菜单、剪切板等。开发者基于 Electron 开发应用时,可以直接使用 JavaScript 访问这些 API。其他诸如网络访问控制、本地文件系统的访问控制则由 Node.js 提供