Electron开发-从推门到进门

本文介绍了Electron框架,它是利用Web技术构建跨平台桌面应用的工具,由GitHub开发。内容涵盖Electron的基础、开发所需的前端技术、优缺点、安装步骤、开发第一个应用以及打包应用的方法。文章提到Electron的优点包括开发效率高、执行效率高、无需考虑兼容性问题等,但也存在打包体积大、学习曲线较陡峭等问题。此外,文章提供了多种开发和打包方案,包括直接引入、使用vue-cli-plugin-electron-builder插件、electron-vue脚手架和自建脚手架。
摘要由CSDN通过智能技术生成

一、Electron 的介绍

Electron是利用web前端技术进行桌面应用开发的一套框架。是由 github 开发的开源框架,允许开发者使用 Web 技术构建跨平台的桌面应用,它的基本结构:

Electron = Chromium + Node.js + Native API

  • Chromium:为 Electron 提供了强大的 UI 能力,可以不考虑兼容性的情况下,利用强大的 Web 生态来开发界面。
  • Node.js :让 Electron 有了底层的操作能力,比如文件的读写,甚至是集成 C++ 等等操作,并可以使用大量开源的npm包来完成开发需求。
  • Native API : Native API 让 Electron 有了跨平台和桌面端的原生能力,比如说它有统一的原生界面,窗口、托盘这些。

通过三者的巧妙组合,我们开发应用变的十分高效。

若想开发一个兼容多平台的桌面应用,以往常用的技术框架有wxWidgets、GTK、QT等,这些框架受语言限制,且学习成本较高,效率有限。目前一些基于前端技术的hybrid框架很流行,且已经在多个领域得到了广泛的应用和验证,比如利用前端技术+相应的打包工具可开发适配多平台的应用(PC、微信公众号、小程序、Android、IOS等)。Electron就是这样一款框架,为前端技术人员利用web前端技术开发桌面应用带来了可能,开发人员可利用已经掌握的前端技术如Html、CSS、JavaScript,以及结合一些前端技术框架:Vue、Angular、React、webpack,加之浏览器渲染引擎、Electron封装的系统API快速实现一款桌面应用的开发,Electron做了大部分复杂的工作,开发人员只需要专注在核心业务和前端技术本身。同时,通过一定的优化,Electron可以做到很好的体验。

目前有不少知名桌面应用采用Electron开发,如:开发人员熟知的Visual Studio Code、MongoDB桌面版管理工具、Skype桌面版、WhatsApp桌面版、HTTP网络测试工具Postman等。所以前端开发者不用担心案例问题。

二、Electron开发桌面程序需要用到的前端技术

Electron是基于Chromium和Node.js实现的,所以开发人员所需要使用到的前端技术主要包括以下方面:

1、Html、CSS、JavaScript(能用ES6开发最好不过,基本前沿的语法它都支持,没有兼容性负担)

2、前端开发工具Vue、Angular、React等的一种(你也可以用纯html和js开发,也是没有问题)

3、其他网络、缓存、通讯等前端技术

三、当然Electron也有不足之处,主要是:

1.打包体积大

一个小应用打包下来可能就需要几十兆,不过目前磁盘存储已经不是什么大问题,随着网路环境越来越好,磁盘容积也越来越大,这个问题给用户带来的负担越来越不明显,几乎可以忽略。

2.开发具有一定的复杂度

除需要掌握必要的前端知识外,Electron开发仍需要了解跨进程通信的一些知识点,进程上的一些问题往往还是容易给开发者带来一定的困惑,如果你单纯的只是用它作为一个载体(壳),那基本没有啥学习成本,10分钟就可以做好一个应用,如果你的应用更倾向于qq、微信那样的客户端,这个就有一定的学习成本,但是通过系统学习还是容易攻克的。

3.版本更新快

因为是基于Chromium的,所以Electron跟随Chromium的版本发布节奏,版本迭代较快,这可能会导致一些兼容问题,但幸运的是目前Electron的核心功能一直都算是很稳定的。至少常用的api基本没有变过,我用2018年写的程序,安装最新的electron版本,基本不用怎么修改就可以跑起来,前提是你需要关注官网,一些即将废弃和试验的api都尽可能少的使用,好处是新特性会更快使用到项目当中

4.安全问题

Electron提供给了开发人员足够的便利,同时也有一些具有风险的开关,开发者需要在开发中妥善处理,避免对应用客户带来安全隐患,开发人员需要关注安全问题。

5.性能问题。

Electron 本身是多进程、多线程的框架,但 JavaScript 是单线程运行的,如果产品的需求中有大量CPU 消耗性的需求,那么不应该在 Electron 内使用 JavaScript 来实现这些需求,而应该使用 Node.js 的原生模块来实现这些需求。与其说这是一个 Electron 的不足,不如说这是 JavaScript 的不足。

除了以上这些问题外,Electron 还不支持老版本的 Windows 操作系统,比如 Windows XP,在中国还有一些用户是使用 Windows XP 的,开发者如果需要面向这些用户,应该考虑使用其他技术方案了。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值