【Electron】vue+electron如何实现进程间的通信

本文详细介绍了在 Electron 中,Vue 应用如何进行渲染进程与主进程之间的通信,包括通过 `ipcRenderer` 和 `ipcMain` 模块的使用方法,以及在 Vue 项目中配置预加载脚本解决 Webpack5 的问题。此外,文章还讨论了 `remote` 和 `shell` 模块的常见配置和注意事项,并提供了封装 `ipcMain` 进行统一管理的方法。

一、前言

本文主要介绍electron渲染进程和主进程间的通信,以及在渲染进程和主进程中常用的配置项。

二、配置内容

1.进程间的通信

渲染进程和主进程间的通信主要通过ipcRendereripcMain这两个模块实现的,其中ipcRenderer是在渲染进程中使用,ipcMain在主进程中使用。

其中,渲染进程使用ipcRenderer有两种方式

第一种方式引入ipcRenderer

这种方式主要是通过Electron窗口的preload方法实现的,以下是实现步骤

首先我们创建一个preload.js文件,把文件放入到public文件中

// preload.js

window.ipcRenderer = require('electron').ipcRenderer; 

之后在主进程中引入

import { BrowserWindow, ipcMain } from 'electron'
let win = new BrowserWindow({width: 800, height: 600,webPreferences: {contextIsolation: false,// eslint-disable-next-line no-undefpreload: __static + '/preload.js'}
})
// 顺便这里放一个主进程的监听
ipcMain.on('pong', (e, args) => {console.log('这里是主进程pong', args)e.sender.send('ping', '你好 我是主进程')
}) 

这样我们就可以再渲染进程直接使用window.ipcRenderer,去监听或发送事件了。

// App.vue

// 渲染进程的监听
window.ipcRenderer.on('pang', (e, arg) => {console.log('渲染进程===我收到啦', arg)
})
// 渲染进程发送事件===这个可以放到一个点击事件里面去触发
window.ipcRenderer.send('ping', '你好呀,我是渲染进程') 

实验结果如下,这里注意主进程的打印是在终端里面输出的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值