Electron的入门介绍与使用React18+Vite+Electron(2)共30节

上一篇讲了如何安装Electron和简单例子,Electron的入门介绍与使用(1)共30节

让我们回顾一下Electron的发展历史,Electron 最初由 GitHub 公司开发,最早用于构建 GitHub Desktop。随着其成功,Electron 逐渐成为一个受欢迎的开发框架,许多知名应用程序如 Visual Studio Code、Slack、WhatsApp 等也使用 Electron 构建。 基本原理 Electron 使用 Chromium 渲染引擎来显示 Web 内容,同时结合 Node.js 来提供对操作系统的访问和控制。

  1. 跨平台: Electron 应用程序可以在多个操作系统(如 Windows、macOS、Linux)上运行,因为它们在不同平台上共享相同的核心代码。
  2. 前端技术: 开发者可以使用熟悉的前端技术,如 HTML、CSS 和 JavaScript,来构建用户界面。
  3. Node.js 集成: 通过 Node.js,开发者可以在应用程序中使用 JavaScript 来处理文件系统、网络通信、操作系统 API 等等。
  4. 自定义性: 开发者可以通过使用原生的 Web 技术和样式,创建非常定制化的用户界面。
  5. 社区支持: 有一个活跃的社区,提供了大量的插件和库,以帮助开发者构建更强大、更高效的应用程序。

核心组件

  1. 主进程(Main Process): 这是应用程序的主要控制中心,运行 Node.js 环境,负责管理和控制所有的渲染进程和窗口。
  2. 渲染进程(Renderer Process): 每个 Electron 窗口对应一个独立的渲染进程,它们运行在 Chromium 渲染引擎中,负责显示用户界面。
  3. 主窗口(Main Window): 主窗口是应用程序的主界面,通常是一个 Chromium 窗口,用来显示 Web 内容。
  4. 系统托盘图标(Tray): 允许在桌面右下角显示小图标,提供应用程序的快速访问和交互。

ok ,回归正传,今天我们讲解Electron和React18的结合。

一、使用vite初始化项目

复制代码
pnpm create vite

....

接下来就是项目命名之类的,跟着提示操作即可。

接下来安装Electron

要安装预编译的 Electron 二进制文件,请使用 npm。 首选方法是在你的应用程序中安装 Electron 作为开发依赖:

复制代码
npm install electron --save-dev

查看versioning doc获取如何在你的应用中管理Electron的相关信息。

运行 Electron ad-hoc

如果你不想在本地工程上使用 npm install 同时又没用其它选择时,你也可以使用 npm 捆绑的 npx 命令来运行 Electron ad-hoc:

复制代码
npx electron .

上面的命令会在当前工作目录下运行Electron。 需要注意的是,你的应用中的任何依赖将不会被安装。

二、配置项目

在 package.json 中指定的 main 文件是 Electron 应用的入口。 这个文件控制 主程序 (main process),它运行在 Node.js 环境里,负责控制您应用的生命周期、显示原生界面、执行特殊操作并管理渲染器进程 (renderer processes),稍后会详细介绍。

在继续编写您的 Electron 应用之前,您将使用一个小小的脚本来确保主进程入口点已经配置正确。 在根目录的 main.js 文件中写一行代码:

main.js

复制代码
console.log('Hello from Electron 👋')

由于 Electron 的主进程是一个 Node.js 运行时,您可以使用 electron 命令执行任意的 Node.js 代码 (甚至可以将其作为 REPL 使用)。 要执行这个脚本,需要在 package.json 的 scripts 字段中添加一个 start 命令,内容为 electron . 。 这个命令会告诉 Electron 在当前目录下寻找主脚本,并以开发模式运行它。

修改mian的代码:
复制代码
const { app, BrowserWindow } = require('electron/main')

const createWindow = () => {
  const win = new BrowserWindow({
    width: 800,
    height: 600
  })

  win.loadFile('../public/index.html') //此处为react项目打包后的入口文件
}

app.whenReady().then(() => {
  createWindow()

  app.on('activate', () => {
    if (BrowserWindow.getAllWindows().length === 0) {
      createWindow()
    }
  })
})

app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit()
  }
})

OK,接下来我们修改package.json

复制代码
  "main": "dist-electron/index.js",
  "scripts": {
    "dev:electron": "cross-env NODE_ENV=development vite",
    "start:electron": "electron .",
    "build:win": "electron-builder --win --x64",
    "build:mac": "electron-builder --mac --x64",
    "build:linux": "electron-builder --linux --x64",
    "build:all": "npm run build:win && npm run build:mac && npm run build:linux",
    "test:electron": "echo \"Error: no test specified\" && exit 1",
    "dev": "vite",
    "build": "tsc -b && vite build",
    "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
    "preview": "vite preview"
  },

修改vite.config.js代码

复制代码
import electron from 'vite-plugin-electron'
 ...
  //多余代码没写
  plugins: [react(), electron({
    entry: 'electron/index.js'
  })],
... 

好了,这样就可以启动试下

复制代码
pnpm run dev
相关推荐
崔庆才丨静觅9 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60619 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了9 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅9 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅10 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅10 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment10 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅11 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊11 小时前
jwt介绍
前端
爱敲代码的小鱼11 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax