首页 > 编程笔记

NW.js和Electron优缺点综合对比

NW.js 和 Electron 两个框架都是基于 Chromium 和 Node.js 实现的,这就使得前端程序员可以使用 JavaScript、HTML 和 CSS 轻松构建跨平台的桌面应用。

更多关于 Electron 的内容请转到:Electron是什么?

NW.js 和 Electron 问世之后,之前很多传统桌面应用开发的难点变得异常容易,比如:
为了弥补 Node.js 和前端技术访问系统 API 方面的不足,这两个框架内部都对系统 API 做了封装,比如系统对话框、系统托盘、系统菜单、剪切板等。开发者基于 Electron 开发应用时,可以直接使用 JavaScript 访问这些 API。

其他 API,诸如网络访问控制、本地文件系统的访问控制等则由 Node.js 提供支持。

两个框架对于开发者来说差别并不是特别大,最主要的差别无过于 Electron 区分主进程和渲染进程:
NW.js 和 Electron 都是基于 Chromium 和 Node.js 实现的,Chromium 和 Node.js 的应用场景完全不同,它们的底层虽有一部分是相同的,但要想把它们两个整合起来并非易事。

显然 NW.js 和 Electron 都做到了,然而它们底层使用的整合技术却截然不同:
NW.js 的实现方式更直接,但这也导致 Node.js 和 Chromium 耦合性更高。Electron 的实现方式虽然保证了 Node.js 和 Chromium 的松耦合,但也间接地创造出了主进程和渲染进程的概念,给开发人员实现应用带来了一定的困扰。

除此之外,其他方面的比较如表1所示。

表1:Electron与NW.js部分能力的对比表
能力 Electron NW.js
崩溃报告 内置
自动更新 内置
社区活跃度 良好 一般
周边组件 较多,甚至很多是官方团队开发的 一般
开发难度 一般 较低
知名应用 较多 一般
维护人员 较多 一般

可以说 NW.js 和 Electron 各有优劣,我个人认为 Electron 更胜一筹,更值得推荐。

所有教程

优秀文章