二、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通訊。

相關文章
相關標籤/搜索