Electron有两种类型的进程:主进程和渲染进程。主进程负责创建浏览器窗口,而渲染进程则在每个窗口中运行网页。由于安全原因,这两种进程不能直接通信。为了解决这个问题,Electron 提供了 ipcMain 和 ipcRenderer 模块来实现进程间通讯(IPC);渲染进程与渲染进程通信 由于渲染进程之间没有办法直接通信,所以得借助主进程来通信。
主进程与渲染进程通信
ipcMain:当在主进程中使用时,它处理从渲染器进程(网页)发送出来的异步和同步信息,
当然也有可能从主进程向渲染进程发送消息。
ipcRenderer: 使用它提供的一些方法从渲染进程 (web 页面) 发送同步或异步的消息到主
进程。 也可以接收主进程回复的消息。
自主进程到渲染进程:从Main到Renderer的消息传递,借助BrowerWindow.webContents.send()发送消息。
自渲染进程到主进程:从Renderer到Main的消息传递,借助ipcRender和ipcMain发送/接收消息。
事件机制:无论是BrowerWindow.webContents.send(),还是ipc,其实都是node的事件机制,都是EventEmitter的实例
渲染进程之间通信
由于渲染进程之间没有办法直接通信,所以得借助主进程来通信
- 方法一:通过
localStorage.setItem(key,value)
和localStorage.getItem(key)
传值 全局的main.js
- 方法二:通过渲染进程给主进程传值,在由主进程通知渲染进程并传值