Electron.js 或 Electron 面试题

17 Mar 2025 | 6 分钟阅读

关于 Electron.js (俗称 Electron) 最常被问到的问题

1) 什么是 Electron.js 或 Electron?

Electron.js 通常被称为 Electron。它是一个由 GitHub 开发和维护的开源库,用于使用 HTML、CSS 和 JavaScript 开发跨平台的桌面应用程序。


2) Electron 的用途是什么?或者说 Electron.js 是用来做什么的?

Electron 以前被称为 Atom Shell。它是一个由 GitHub 开发和维护的开源软件框架。它方便开发者使用 Web 技术开发桌面 GUI 应用程序。

它结合了 Chromium 渲染引擎和 Node.js 运行时。


3) 在学习 Electron 之前,你应该了解什么?

在学习 Electron 之前,你应该对 JavaScript、HTML 和 CSS 有基本的了解。如果你了解一些原生的 Node.js API,如文件处理、进程等,那将更有帮助。


4) Electron 使用了哪种技术?

Electron 使用 Chromium 和 Node.js,以及 HTML、CSS 和 JavaScript。


5) 我们为什么要学习 Electron?

学习 Electron 的主要优势是你可以轻松地制作跨平台的桌面应用程序和原生应用。你还可以使用 Electron 将你的网站转换为桌面应用程序。


6) Electron.js 容易学吗?

Electron.js 是一个用于通过 HTML、CSS 和 JavaScript 等 Web 技术创建原生应用程序的框架。你可以借助 Electron 轻松创建一个桌面应用程序,因为它会处理应用程序中困难的部分,让你能够专注于应用程序的核心部分。


7) Electron 是如何工作的?

Electron 基于 JavaScript。你可以使用普通的 HTML、CSS 和 JavaScript 技能来构建和分发可扩展的桌面应用程序。

它通常包含几个重要的文件,例如

  • js: 它用于指定窗口属性、启动画面和其他主进程。
  • html: 它包含前端部分,其 HTML 语法与任何其他 Web 应用一样。
  • css: 我们可以根据你的需求额外添加 style.css 和其他页面。

Electron 也可用于将你的网站转换为桌面应用程序。


8) Google Chrome 是用 Electron 制作的应用吗?

Electron 使用 Chromium 和 Node.js。所以,每个 Electron 应用都包含一部分 Chrome 的代码。


9) Chromium 和 Node.js 在 Electron 中是如何使用的?

Chromium 和 Node.js 在 Electron 中通过以下方式使用:

Chromium: Chromium 是一个由 Google 开发和维护的 Web 套件。它是一个带有 V8 JavaScript 引擎的互联网浏览器,支持所有的浏览器和 DOM API。它非常适合制作网页。

Node.js: Node.js 使后端代码的 JavaScript 状态与前端应用窗口状态分离。


10) Electron 中有哪些不同类型的进程?

Electron 中有两种类型的进程:主进程和渲染进程。

主进程: 有些模块在每个进程或两个进程中都工作。主进程更像是在幕后工作。它负责与操作系统的原生图形用户界面 (GUI) 进行交互。

渲染进程: 渲染进程负责通过使用 HTML 文件、CSS 文件、JavaScript 文件等来运行应用程序的用户界面。渲染进程在你应用的每个窗口中运行。


11) Electron 中的进程间通信模块是什么?

进程间通信模块是一种机制,它允许在 Electron 的主进程和渲染进程之间交换同步和异步消息。


12) 我们如何在 Electron 中构建用户界面?

Electron 中的用户界面可以使用 HTML、CSS 和 JavaScript 来构建。


13) Electron 中的环境变量是什么?

环境变量用于在不更改代码的情况下控制应用程序的配置和行为。环境变量控制着 Electron 的某些行为,因为它们在命令行标志和应用代码之前被初始化。

Electron 中有两种类型的环境变量。

  • 生产环境变量
  • 开发环境变量

14) 你对 Electron 中的 Web View 有什么理解?

在 Electron 中,WebView 是一个用于嵌入网页的标签。它在一个独立的系统中运行,并在应用和嵌入内容之间进行异步交互。


15) 你对打包应用了解多少?

打包 Electron 应用,指的是创建一个桌面安装程序。打包和分发应用是开发过程中至关重要的一部分。

这些可以通过使用以下工具来完成:

  • Electron - packager。
  • Electron - builder。

16) 我们如何在系统上安装 Electron?

要安装并开始使用 Electron 进行开发,我们必须在系统上安装 Node 和 npm (node package manager)。如果你还没有安装这些软件,可以从其官方网站下载并安装到你的本地系统上:https://node.org.cn/en/download/。

Electron.js Interview Questions

你可以在终端中运行以下命令来确认 node 和 npm 是否已成功安装在你的系统上。

你可以从这里了解更多关于如何安装 Node 的信息:https://tpointtech.cn/install-nodejs


17) 我们如何在 Electron 中进行调试?

调试是识别问题的过程。它是一系列用于识别问题、找到问题根源,然后解决问题以使应用程序成功运行的步骤。

在 Electron 中,应用在主进程和渲染进程上运行,因此调试适用于这两个进程。

在 Electron 浏览器窗口中,DevTools 是唯一可以调试在这些网页中执行的 JavaScript 的工具。它使用外部调试器,并通过命令 -debug 或 -debug-brk、-inspect 或 inspect-brk 启动 Electron。

Chrome DevTools 用于调试渲染进程,因为它在浏览器窗口中执行。


18) 使用 Electron 安全吗?

Electron 应用程序是在 Chromium 引擎中运行的 Web 应用程序,因此它们可能会受到与 Web 相关的攻击,例如跨站脚本攻击。攻击媒介与浏览器(例如 Chromium)或其他内部组件(Node.js)相同,特别是如果你使用的是旧版本的 Electron。这些漏洞在最新的 Electron 版本中已经得到修复。


19) 迄今为止有哪些不同的 Electron 版本?

下表显示了迄今为止所有的 Electron 版本

Electron.js Interview Questions

20) Electron 中有哪些不同类型的菜单?

在 Electron 桌面应用中创建了两种类型的菜单。

  • 应用程序菜单
  • 上下文菜单。

这里,应用程序菜单用于显示顶部栏,而上下文菜单在右键单击后显示。


21) 你对 Electron 中的系统托盘了解多少?

在 Electron 框架中,系统托盘代表操作系统通知区域中的一个图标。换句话说,我们可以说系统托盘是应用程序窗口之外的一个菜单。


22) 在 Electron 中是如何创建通知的?

在 Electron 中,通知是通过一个名为 node-notifier 的 npm 模块创建的。它用于在 Windows、Linux 和 MacOS 操作系统中通知用户。Electron 也提供了仅适用于 MacOS 的原生通知 API。node-notifier 模块可以通过以下命令安装:


23) 解释一下 Electron 应用程序的结构?

Electron 应用程序的基本结构包含以下三个文件:

  • json
  • js
  • html

这里,package.json 文件用于元数据,main.js 文件用于代码,而 index.html 文件用于图形用户界面 (GUI)。


24) 哪些大公司和软件在使用 Electron?

Electron 由 Github 开发和维护,用于创建文本编辑器 Atom。自 2014 年以来它一直是开源的。许多公司都在使用它,例如微软、Github、Slack 等。

现在有很多公司使用 Electron 来创建各种应用程序。以下是一些著名应用的列表:

  • Slack 桌面版
  • WordPress 桌面应用
  • Visual Studio Code
  • Caret Markdown 编辑器
  • Nylas 邮件应用
  • GitKraken git 客户端等。

25) 与功能相似的原生应用程序相比,为什么 Electron 会受到批评?

Electron 应用程序通常因其对 Chromium 的依赖而包含非常显著的开销而受到批评。如果将 Electron 与功能相似的其他原生应用程序进行比较,Electron 应用程序会占用更多的存储空间和内存,同时速度较慢,并提供非原生的用户界面。

已经有一些替代方案被编写出来,它们使用现有的浏览器而不是捆绑 Chromium。