2、electron進程


electron核心我們可以分成2個部分,主進程和渲染進程。

主進程:

主進程連接着操作系統和渲染進程,可以把她看做頁面和計算機溝通的橋梁。

Electron 運行 package.json 的 main 腳本的進程被稱為主進程。 在主進程中運行的腳本通過創建web頁面來展示用戶界面。 一個 Electron 應用總是有且只有一個主進程。

渲染進程:

渲染進程就是我們所熟悉前端環境了。只是載體改變了,從瀏覽器變成了window。傳統的web環境我們是不能對用戶的系統就行操作的。而electron相當於node環境,我們可以在項目里使用所有的node api 

由於 Electron 使用了 Chromium 來展示 web 頁面,所以 Chromium 的多進程架構也被使用到。 每個 Electron 中的 web 頁面運行在它自己的渲染進程中。

在普通的瀏覽器中,web頁面通常在一個沙盒環境中運行,不被允許去接觸原生的資源。 然而 Electron 的用戶在 Node.js 的 API 支持下可以在頁面中和操作系統進行一些底層交互。

主進程與渲染進程的區別

主進程使用 BrowserWindow 實例創建網頁。每個 BrowserWindow 實例都在自己的渲染進程里運行着一個網頁。當一個 BrowserWindow 實例被銷毀后,相應的渲染進程也會被終止。

主進程管理所有頁面和與之對應的渲染進程。每個渲染進程都是相互獨立的,並且只關心他們自己的網頁。

由於在網頁里管理原生 GUI 資源是非常危險而且容易造成資源泄露,所以在網頁面調用 GUI 相關的 APIs 是不被允許的。如果你想在網頁里使用 GUI 操作,其對應的渲染進程必須與主進程進行通訊,請求主進程進行相關的 GUI 操作。

 

renderer.js:渲染進程,它的操作跟web中的js操作大同小異,所以最好有node.js、js以及es6的語法的功底,這樣開發起來,才能得心應手。

項目運行流程如下:

app啟動時執行main.js中的代碼創建窗口,加載頁面等。渲染進程renderer.js進行頁面的渲染,渲染進程與主進程間相互通信,進行數據的傳遞等,但主進程與渲染進程之間不能直接互相訪問,需要通過ipcMain和ipcRenderer進行IPC通信。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM