0

0

开发桌面应用,自然用 Electron !

絕刀狂花

絕刀狂花

发布时间:2025-09-22 08:12:00

|

367人浏览过

|

来源于php中文网

原创

01node.js,一个让 javascript 从丑小鸭变成白天鹅的框架

可能很多读者会感到疑惑,为什么在讨论 Electron 时要先提到 Node.js 和 JavaScript?它们之间有什么联系呢?别急,接下来我会慢慢解释。

相信熟悉 JavaScript 开发的读者对 Node.js 并不陌生,Node.js 诞生于 2009 年,类似于 ASP.NET,是用于开发服务器端程序的框架,使用的编程语言是 JavaScript。

虽然很多开发者初次接触 Node.js 时认为它主要用于开发 Web 应用,但正是因为 Node.js 的出现,JavaScript 才摆脱了“只能开发 Web 应用”的标签。

Node.js 使得 JavaScript 能够像 Python、Java 一样在终端(或 Windows 命令行)中运行,它还提供了大量的 API,利用这些 API,JavaScript 几乎可以完成任何任务。

目前,已经有许多依赖 Node.js 的第三方模块和框架,形成了一个以 Node.js 为核心的庞大生态系统。

在这个生态系统中,有一个领域是用来开发桌面应用的,成为了桌面 GUI 开发的选择,著名的包括 NW.js 和 Electron。其中,Electron 更为知名,甚至微软也用 Electron 开发了自己的 IDE——著名的 Visual Studio Code。

此外,使用 Electron 开发的应用还有很多,如 Atom、支付宝小程序 IDE(蚂蚁开发者工具)等。Electron 最初是由 GitHub 开发并维护的,后来 GitHub 被微软收购,因此 Electron 现在得到了微软的支持。

下图是 Visual Studio Code:

开发桌面应用,自然用 Electron !下图是蚂蚁开发者工具:

开发桌面应用,自然用 Electron !至此,可能很多读者会有新的疑问,为什么要开发跨平台的桌面应用?为什么选择 Node.js 和 Electron 来开发呢?

目前已经有很多流行的桌面应用开发工具,如微软的 Visual Studio、跨平台的 QT、Mac 平台的 XCode。其实在使用 Node.js 和 Electron 之前,我也曾有过这个疑问,下面就来解答一下。

02从桌面应用到 Web 应用,再回到桌面应用20 年前(大约 2000 年左右),绝大多数软件都是以桌面应用的形式存在的,像 Word、Excel 就是典型的桌面应用,通过双击桌面图标即可运行。

这些桌面应用在发售时通常使用光盘(CD 或 DVD),将光盘放在精美的包装盒里,然后通过各大软件商店(有线下实体店)销售,因为那时互联网还不发达,网速极慢,只能通过线下方式销售软件。

Wordware
Wordware

Wordware是一个自然语言编程工具,使任何人都可以开发、迭代和部署有用的AI应用程序。

下载

购买软件时,需要确保软件与自己的操作系统兼容(那时大多数人使用的是 Windows 操作系统),然后从包装盒中取出光盘,将光盘中的软件安装到自己的计算机上。

回顾十多年的软件开发进程,业界发生了巨大变化,多平台的时代正在慢慢来临:桌面应用、Web 浏览器、移动端以及其他平台,作为开发者,我们渐渐觉得,有必要支持多平台计算。

那么桌面应用呢?桌面应用已经成为我们在日常生活中使用的计算平台之一,自从二十一世纪以来,发生了很多变化。很多年前,微软的 Windows 系统是 PC 操作系统领域的绝对霸主,后来苹果公司的操作系统(Mac OS X)凭借其创新性和专业性,削弱了 Windows 的统治地位。

不仅如此,在 2016 年第一季度,谷歌的 Chromebook 成为全美最畅销的笔记本电脑,或许属于 Linux 系统的时代也将会到来。关键是现在你已经不能只开发支持 Windows 系统的应用了,还要开发支持苹果系统和 Linux 的应用。

跨平台的桌面应用并不是什么新鲜的东西,像 Mono、QT、Java 等早就可以开发出支持多个主流操作系统的桌面应用了。

通常,有 C++、C#、Java 开发经验的开发者会选择这样的技术来开发跨平台应用,但对于 Web 开发者,面对这些技术需要重新学习一门语言,因此开发跨平台桌面应用对于 Web 开发者有一定门槛。

自从 Electron 出现后,这种情况有了很大改观。Electron 可以让你重用 Web 应用的代码来构建桌面应用,不仅如此,构建出来的应用可以同时在 Windows、Mac OS X 和 Linux 上运行,这有一个非常大的好处:代码和技能都可以复用,并且释放了一拨新的应用。

Electron 桌面应用相对于 Web 应用的优势有哪些呢?

03桌面应用的优点Web 应用受限于网络和浏览器特性,在这些方面,桌面应用要优于 Web 应用,下面列出桌面应用的一些优点:

启动和运行不依赖于网络;桌面应用可以即时启动,不需要等待资源从网络上下载完再启动;桌面应用可以访问计算机的操作系统和硬件资源,包括连接在计算机上的硬件设备;桌面应用可以更好地控制软件的用户体验,不需要担心不同浏览器处理 CSS 的规则以及哪些 JavaScript 特性是被支持的;一旦桌面应用安装到用户计算机上,就会永远在那里,它不像 Web 应用那样需要一台 Web 服务器,还需要提供一天 24 小时支持,以防 Web 服务器宕机,当然,如果 Web 服务托管商遇到问题就更糟糕了。通常,开发桌面应用要求开发者精通像 C++、Objective-C 或者 C# 这样的语言以及像 .NET、QT、Cocoa 这样的框架。这对于很多开发者来说,准入门槛有点高,他们很可能会放弃使用这些技术来构建桌面应用。

而 Electron 则不同,Electron 使用 JavaScript 开发桌面应用,任何 Web 开发者都很容易上手,即使不是 Web 开发者,学习 JavaScript 相对于 C++、C# 这些语言也非常容易,因此,Electron 的准入门槛非常低。

到现在为止,我们已经了解了 Electron 到底是做什么的,以及为什么要用 Electron 来构建桌面应用。

本文选自 GitChat 作者李宁的达人课《Electron 开发入门》,李宁老师会在课程里全面介绍 Electron 的各种技术,并提供一个完整的实战案例,感兴趣的同学可以订阅学习。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
视频后缀名都有哪些
视频后缀名都有哪些

视频后缀名都有avi、mpg、mpeg、rm、rmvb、flv、wmv、mov、mkv、ASF、M1V、M2V、MPE、QT、VOB、RA、RMJ、RMS、RAM、等等。更多关于视频后缀名的相关知识,详情请看本专题下面的文章,php中文网欢迎大家前来学习。

3857

2023.10.31

C++ Qt图形开发
C++ Qt图形开发

本专题专注于 C++ Qt框架在图形界面开发中的应用,系统讲解窗口设计、信号与槽机制、界面布局、事件处理、数据库连接与跨平台打包等核心技能,通过多个桌面应用项目实战,帮助学员快速掌握 Qt 框架并独立完成跨平台GUI软件的开发。

76

2025.08.15

C++ 图形界面开发基础(Qt方向)
C++ 图形界面开发基础(Qt方向)

本专题系统讲解 使用 C++ 与 Qt 进行图形界面(GUI)开发的核心技能,内容涵盖 Qt 项目结构、窗口组件、信号与槽机制、事件处理、布局管理、资源管理,以及跨平台编译与打包流程。通过多个小型桌面应用实战案例,帮助学习者掌握从界面设计到功能实现的完整 GUI 开发能力。

107

2025.12.05

js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

530

2023.06.20

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

554

2023.07.28

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

718

2023.08.03

js是什么意思
js是什么意思

JS是JavaScript的缩写,它是一种广泛应用于网页开发的脚本语言。JavaScript是一种解释性的、基于对象和事件驱动的编程语言,通常用于为网页增加交互性和动态性。它可以在网页上实现复杂的功能和效果,如表单验证、页面元素操作、动画效果、数据交互等。

6023

2023.08.17

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

492

2023.09.01

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

1

2026.03.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
QQ音乐客户端实战开发(electron)
QQ音乐客户端实战开发(electron)

共27课时 | 8.2万人学习

Sass 教程
Sass 教程

共14课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号