一图浅析electron架构

一图浅析electron架构

废话不多说,electron既然基于chromium,我们先简单看下chromium架构:
一图浅析electron架构_第1张图片
chromium运行时有一个Browser Process,以及一个或者多个Renderer Process。Renderer Process 顾名思义负责渲染Web页面。Browser Process则负责管理各个Renderer Process以及其他部分(比如菜单栏,收藏夹等等)。
我们再来看看electron在chromium的基础上做了什么:

electron

Renderer Process

在electron中,仍然使用Renderer Process渲染页面,也就是说electron app使用Web页面作为UI显示,并且兼容传统的Web页面。不同的是electron app开发者可以可选的配置是否支持Node.js。

Main Process

electron对Browser Process改动较大,干脆另起一个名字叫Main Process。Main Process 除了原来chromium的runtime,又添加了Node.js的runtime,main.js便运行在此之上。
electron将Node.js的message loop和chromium联系起来,使得js中可以灵活的控制页面显示,以及和Renderer Process的IPC通信。
当然原生的Node API和第三方的node module同样支持,并且有electron API提供给开发者控制原生菜单和通知等。

注:Browser Process本来没有js运行时,所以还需要依赖V8(当然这是chromium中的V8,不是单独的V8库)。

以上为个人鄙见,欢迎讨论。

你可能感兴趣的:(electron,WEB)