Electron基础入门教程利用Web技术构建多功能桌面应用

最近看到Electron可以用Web技术开发桌面应用很感兴趣,想请教几个基础问题:

  1. 作为前端开发者,需要额外学习哪些知识才能上手Electron开发?Node.js要掌握到什么程度?
  2. Electron应用打包后的体积一般都比较大,有什么优化方案吗?比如如何减少不必要的依赖?
  3. 在实际项目中,Electron适合开发什么类型的桌面应用?有没有什么典型应用场景?
  4. 和传统桌面开发框架Qt/WPF相比,Electron在性能和维护性上有哪些优势和劣势? 新手刚开始学习,希望能了解一些实战经验和注意事项。
3 回复

《Electron基础入门教程》学习地址: https://www.itying.com/goods-929.html 主要教大家用HTML、CSS和JavaScript等Web技术来构建跨平台的桌面应用程序。Electron结合Chromium和Node.js,让开发者可以用熟悉的Web技能开发出像Spotify、VS Code这样的专业软件。

首先你需要安装Electron库,然后创建一个基本项目结构,包括一个HTML页面作为主界面。通过Node.js调用原生模块实现文件操作、系统通知等功能,同时用Chromium渲染网页界面。学习中会涉及主进程与渲染进程通信的知识点,比如使用ipc模块传递数据。

进阶部分可以探索如何打包成exe或dmg安装包,并处理多窗口管理、离线存储等实际需求。此外,掌握调试技巧也很重要,如远程调试和日志记录。通过实战项目能更深入理解Electron框架的魅力。


Electron 是一个基于 Chromium 和 Node.js 的框架,允许开发者使用 HTML、CSS 和 JavaScript 构建跨平台的桌面应用程序。以下是一个简单的入门教程:

  1. 安装依赖:首先需要安装 Node.js 和 npm。然后全局安装 Electron:

    npm install -g electron
    
  2. 创建项目结构

    my-electron-app/
    ├── main.js
    ├── index.html
    └── package.json
    
  3. 编写 package.json

    {
      "name": "my-electron-app",
      "version": "1.0.0",
      "main": "main.js"
    }
    
  4. 主进程 main.js

    const { app, BrowserWindow } = require('electron');
    
    function createWindow () {
      const win = new BrowserWindow({
        width: 800,
        height: 600,
        webPreferences: {
          nodeIntegration: true
        }
      });
      win.loadFile('index.html');
    }
    
    app.whenReady().then(() => {
      createWindow();
    });
    
  5. 前端页面 index.html

    <!DOCTYPE html>
    <html>
    <head>
      <title>Electron App</title>
    </head>
    <body>
      <h1>Hello Electron!</h1>
    </body>
    </html>
    
  6. 运行应用: 在项目根目录下运行:

    electron .
    

这样你就可以看到一个简单的 Electron 应用窗口了。通过进一步学习,你可以集成更多功能,如菜单栏、系统托盘、文件操作等。

Electron基础入门教程

Electron是一个使用JavaScript、HTML和CSS构建跨平台桌面应用的框架。它将Chromium和Node.js整合在一起,让你能用前端技术开发桌面应用。

基础概念

  • 主进程:运行package.jsonmain脚本的进程,负责创建窗口和管理应用生命周期。
  • 渲染进程:每个Electron窗口运行一个独立的渲染进程(相当于网页中的浏览器环境)。
  • IPC通信:主进程和渲染进程通过IPC(进程间通信)交换数据。

快速开始

  1. 初始化项目
mkdir my-electron-app
cd my-electron-app
npm init -y
npm install electron --save-dev
  1. 创建基本文件结构
my-electron-app/
├── package.json
├── main.js
└── index.html
  1. 配置package.json
{
  "name": "my-electron-app",
  "version": "1.0.0",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  }
}
  1. 主进程代码(main.js)
const { app, BrowserWindow } = require('electron')

function createWindow() {
  const win = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      nodeIntegration: true
    }
  })

  win.loadFile('index.html')
}

app.whenReady().then(createWindow)
  1. 渲染进程(index.html)
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Hello Electron</title>
</head>
<body>
  <h1>Hello Electron!</h1>
  <p>We are using Node.js <span id="node-version"></span>,
    Chromium <span id="chrome-version"></span>,
    and Electron <span id="electron-version"></span>.</p>
  
  <script>
    window.addEventListener('DOMContentLoaded', () => {
      document.getElementById('node-version').textContent = process.versions.node
      document.getElementById('chrome-version').textContent = process.versions.chrome
      document.getElementById('electron-version').textContent = process.versions.electron
    })
  </script>
</body>
</html>

运行应用

npm start

进阶功能

  • 原生API访问:利用Electron API访问系统功能(文件系统、菜单、通知等)
  • 打包分发:使用electron-builder或electron-packager打包应用
  • 性能优化:注意内存管理,避免内存泄漏

学习资源

Electron非常适合需要跨平台部署且已有前端开发经验的团队,像VS Code、Slack等知名应用都是用它构建的。

回到顶部