17-7-20-electron中主進程和渲染進程區別與通信


老規矩,先吐槽,再記錄。

今天被上司教育了將近一個小時。因為之前自動更新的模塊,我認為已經完成了,但是還有一些細節沒有完善好,就一直一直的被教育~

事情全部做完,提交以后關閉issue!

 

electron中,從package.json的main載入的js文件就是主進程,由主進程load出來的頁面就是渲染進程。

渲染進程可以有多個,主進程只有一個“main.js”。

主進程和渲染進程之間通信,可以使用ipcMain(主進程)和ipcRenderer(渲染進程)來通信,也可以使用remote模塊來通信。

ipc模塊就不介紹了,無非就是一個發送`ipcXX.send(channel, arg)`,然后一個接收`ipcOO.on(channel, function..)`。

可以多次發送和接收,但是ipcXX必須是不同的,才能相互通信,利用channel的信息名稱來識別。

 

使用remote是今天剛學會的。remote下有幾個子模塊,比如 app模塊。

在主進程中使用`app.XXX = [ 某個實例類A, B, C]`, 由於某些類的實例只能進行一次(比如說默認設置的讀取等操作,多次讀取,就會使文件變得混亂),

那我們在渲染進程中,就可以使用 remote.app.XXX.A來使用在主進程中 實例化的類和方法了。

 

再多說一個。在主進程中往往要引入一些額外的js文件,在那些額外的js文件中使用main.js中聲明的變量時,由於不是一個js文件,就需要把它global化,這樣就能在其他的“直系“文件中使用了。

 

all。 thanks。


免責聲明!

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



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