使用 JavaScript 和 Electron.js 構建桌面 GUI 應用程式
在當今科技時代,桌面應用程式在我們的日常生活中具有極其重要的意義,它們提供了增強的使用者體驗並充分利用了本地機器的功能。傳統上,開發桌面應用程式需要精通特定平臺的程式語言和框架,這對希望涉足桌面開發的 Web 開發人員來說是一個挑戰。然而,Electron.js 有效地解決了這一難題。
Electron.js 以前稱為 Atom Shell,是一個源自 GitHub 的開源框架。它使開發人員能夠使用熟悉的 Web 技術(如 HTML、CSS 和 JavaScript)構建跨平臺桌面應用程式。透過彌合 Web 開發和桌面應用程式開發之間的差距,Electron.js 為開發人員創造了新的機會,讓他們能夠建立強大且功能豐富的桌面應用程式。
Electron.js 的架構
要了解 Electron.js 的工作原理,讓我們仔細看看它的架構。Electron.js 結合了兩個主要元件:Chromium 渲染引擎和 Node.js 執行時。
Chromium 渲染引擎 − Electron.js 使用與流行的 Web 瀏覽器 Google Chrome 相同的渲染引擎——Chromium。這使得 Electron.js 應用程式能夠以與 Web 瀏覽器相同的功能和效能渲染和顯示 Web 內容。
Node.js 執行時 − Electron.js 集成了 Node.js 執行時,它提供了對底層作業系統和原生 API 的訪問。這意味著開發人員可以充分利用 Node.js 的強大功能,並利用其廣泛的模組和庫生態系統來構建桌面應用程式。
Electron.js 利用多程序架構,其中每個 Electron.js 應用程式都包含兩個主要程序:主程序和渲染程序。
主程序 − 主程序作為一個獨立的 Node.js 程序執行,負責建立和管理瀏覽器視窗。它與渲染程序通訊,處理系統級事件,並可以訪問原生 API。主程序控制應用程式的生命週期,並充當 Electron.js 應用程式的入口點。
渲染程序 − 每個 Electron.js 應用程式可以有多個渲染程序,每個程序對應一個單獨的瀏覽器視窗。渲染程序負責渲染和顯示每個瀏覽器視窗中的 Web 內容。它們在單獨的 JavaScript 上下文中執行,提供了一定程度的隔離和安全性。每個渲染程序都可以訪問 Electron.js API,從而可以與主程序互動並執行諸如操作 DOM、發出網路請求和處理使用者互動等任務。
構建一個簡單的 Electron.js 應用程式
現在我們已經對 Electron.js 及其架構有了很好的瞭解,讓我們深入研究如何使用 JavaScript 構建一個簡單的 Electron.js 應用程式。我們將建立一個應用程式,該應用程式顯示一個帶有“Hello, Electron.js”訊息的視窗。
要開始,請按照以下步驟操作:
設定開發環境
確保您的機器上已安裝 Node.js,因為 Electron.js 是建立在 Node.js 之上的。您可以從官方網站 (https://nodejs.org) 下載並安裝最新版本的 Node.js。
建立一個新的 Electron.js 專案
建立一個新的專案資料夾,並使用命令列導航到該資料夾。透過執行以下命令初始化一個新的 Node.js 專案:
npm init -y
此命令將使用預設設定初始化一個新的 Node.js 專案。
安裝 Electron.js
透過執行以下命令將 Electron.js 作為開發依賴項安裝:
npm install electron --save-dev
此命令將在您的專案中安裝 Electron.js 包。
建立主入口點
在您的專案資料夾中建立一個名為 index.js 的新檔案,並新增以下程式碼:
const { app, BrowserWindow } = require('electron'); function createWindow() { // Create the browser window const mainWindow = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true, }, }); // Load the index.html file mainWindow.loadFile('index.html'); } // When Electron has finished initialising and is ready to create browser windows app.whenReady().then(() => { createWindow(); app.on('activate', function () { if (BrowserWindow.getAllWindows().length === 0) createWindow(); }); }); // Quit the application when all windows are closed app.on('window-all-closed', function () { if (process.platform !== 'darwin') app.quit(); });
解釋
在此程式碼中,我們從 Electron.js 包中匯入必要的模組,定義 createWindow 函式以建立瀏覽器視窗,並設定視窗建立和應用程式退出所需的事件處理程式。
建立 HTML 檔案
在專案資料夾中建立一個名為 index.html 的新檔案,並新增以下程式碼:
示例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Electron.js Application</title> </head> <body> <h1>Hello, Electron.js</h1> </body> </html>
此 HTML 檔案將顯示在 Electron.js 應用程式的視窗中。
執行 Electron.js 應用程式
npx electron.
結論
Electron.js 徹底改變了開發人員使用 Web 技術構建桌面應用程式的方式。它提供了一個強大的框架,該框架結合了 Chromium 渲染引擎和 Node.js 執行時,使開發人員能夠使用 HTML、CSS 和 JavaScript 建立跨平臺桌面應用程式。憑藉其豐富的外掛和工具生態系統,Electron.js 使開發人員能夠構建功能豐富、效能卓越且視覺效果出色的桌面應用程式。
在本文中,我們探討了 Electron.js 的基礎知識,並學習瞭如何使用 JavaScript 構建一個簡單的 Electron.js 應用程式。我們討論了 Electron.js 的架構、其主要程序以及主程序和渲染程序的作用。我們還逐步介紹了設定開發環境和構建 Electron.js 應用程式的過程。