二、electron进程

electron核心咱们能够分红2个部分,主进程和渲染进程。前端

主进程:

主进程链接着操做系统和渲染进程,能够把她看作页面和计算机沟通的桥梁。node

Electron 运行 package.json 的 main 脚本的进程被称为主进程。 在主进程中运行的脚本经过建立web页面来展现用户界面。 一个 Electron 应用老是有且只有一个主进程。es6

渲染进程:

渲染进程就是咱们所熟悉前端环境了。只是载体改变了,从浏览器变成了window。传统的web环境咱们是不能对用户的系统就行操做的。而electron至关于node环境,咱们能够在项目里使用全部的node api web

因为 Electron 使用了 Chromium 来展现 web 页面,因此 Chromium 的多进程架构也被使用到。 每一个 Electron 中的 web 页面运行在它本身的渲染进程中。json

在普通的浏览器中,web页面一般在一个沙盒环境中运行,不被容许去接触原生的资源。 然而 Electron 的用户在 Node.js 的 API 支持下能够在页面中和操做系统进行一些底层交互。api

主进程与渲染进程的区别

主进程使用 BrowserWindow 实例建立网页。每一个 BrowserWindow 实例都在本身的渲染进程里运行着一个网页。当一个 BrowserWindow 实例被销毁后,相应的渲染进程也会被终止。浏览器

主进程管理全部页面和与之对应的渲染进程。每一个渲染进程都是相互独立的,而且只关心他们本身的网页。架构

因为在网页里管理原生 GUI 资源是很是危险并且容易形成资源泄露,因此在网页面调用 GUI 相关的 APIs 是不被容许的。若是你想在网页里使用 GUI 操做,其对应的渲染进程必须与主进程进行通信,请求主进程进行相关的 GUI 操做。app

 

renderer.js:渲染进程,它的操做跟web中的js操做大同小异,因此最好有node.js、js以及es6的语法的功底,这样开发起来,才能驾轻就熟。electron

项目运行流程以下:

app启动时执行main.js中的代码建立窗口,加载页面等。渲染进程renderer.js进行页面的渲染,渲染进程与主进程间相互通讯,进行数据的传递等,但主进程与渲染进程之间不能直接互相访问,须要经过ipcMain和ipcRenderer进行IPC通讯。