Electron介绍(理论篇)

  Electron是一个能让你使用前端技术(JavaScript, HTML, CSS和Node.js)构建跨平台的桌面应用的框架。最初被GitHub开发,2013年4月11日以Atom Shell为名起步,2014年5月16日开源,2015年4月17日改名为Electron。

基于Electron实现的产品

  VsCode, Atom等。

Electron组成

  Electron主要由Node.js、Chromium和封装好的系统API三大部分组成。

  在Electron构建的程序里,Chromium负责页面渲染进程,Node.js负责程序的逻辑部分,开发中可以使用所有Node.js的原生API,也可以使用npm平台上的所有模块。使用Electron的API可以实现如通知、自定义Windows任务栏/MacOS Dock、最近文档等操作系统原生功能。

Electron进程

  Electron有两种进程,分别是主进程和渲染进程。

  主进程只能有一个,负责调用Electron的API实现系统功能,控制应用的生命周期,创建单独的渲染进程来加载web页面等。

  每个单独的web页面都运行在属于它自己的渲染进程中,是相互独立的。这意味着某一个渲染进程崩溃了,并不会影响到其它的渲染进程。渲染进程负责渲染页面和处理相应的页面交互。有一点需要注意的是,渲染进程并不能直接调用与 GUI 相关的原生 API (比如操作系统菜单、创建新窗口等),因为渲染进程等于是使用的Chromium来展示web页面,在web页面中,直接操作原生的 GUI 资源是非常危险的,而且容易造成资源泄露。如果想要在渲染进程内使用GUI操作,可以与主进程产生通讯,请求主进程调用相应的API来操作。

Electron优缺点

优点:

  • 快速构建跨平台(Windows、MacOs、Linux)的桌面级应用

  • 因为使用Node.js开发,所以npm平台下的包都可以使用,提升开发效率,避免重复造轮子

  • 有很多现成的UI框架可以使用

缺点:

  • 安装包体积略大(打包了Chromium)

  • 性能不如原生应用

0%