主进程负责原生操作,渲染进程展示页面,两者通过ipcMain和ipcRenderer实现双向通信。
Electron 应用由主进程和渲染进程组成,两者分工明确:主进程管理窗口、菜单、系统事件等原生操作,渲染进程负责展示页面内容。由于它们运行在不同环境中,通信必须通过特定机制完成。
主进程基于 Node.js 环境,可调用操作系统底层功能,如打开文件对话框、创建窗口。每个 Electron 应用只有一个主进程。渲染进程是每
个窗口中的网页运行环境,类似浏览器标签页,默认不支持 Node.js(可通过配置开启)。
两者不能直接访问对方变量或函数,必须借助 Electron 提供的通信模块。
Electron 提供 ipcMain(主进程)和 ipcRenderer(渲染进程)模块实现双向通信。常用方法包括发送消息和监听响应。
ipcRenderer.send() 发送同步或异步消息,主进程用 ipcMain.on() 监听event.reply() 回复,或使用 webContents.send() 主动发送示例:点击渲染进程按钮请求打开文件
// 渲染进程(renderer.js)通信过程中需注意数据验证,防止恶意内容注入。避免在消息中传递大量数据或敏感信息。推荐使用唯一且语义化的事件名称,防止冲突。
对于复杂应用,可封装通信逻辑为服务模块,统一处理请求响应。若需双向调用返回结果,可结合 Promise 封装异步通信。
基本上就这些。掌握 ipc 通信机制后,就能灵活协调主进程和渲染进程的功能了。