目標:electron-vue を使用してデスクトップ アプリケーションを開発する場合、新しいウィンドウが作成され、メイン ウィンドウの値が新しいウィンドウで使用できるようになり、ウィンドウ間の値の転送が行われることが望まれます。
実装:
- ウィンドウ A のレンダリング プロセスがメイン プロセスにメッセージを送信します。
const sendMsgMain = (msg) => {
ipcRenderer.send('sendMsgMain', msg)
}
- メインプロセスはメッセージを受信した後、ウィンドウ B のレンダリングプロセスにメッセージを送信します。
ipcMain.on('sendMsgMain', (e, msg) => {
childWin.webContents.send('msgFromMain', msg) // childWin为B窗口
})
- ウィンドウ B レンダリング プロセスがメイン プロセス メッセージを受信する
const getMsgChild = () => {
ipcRenderer.on('msgFromMain', (e, message) => {
console.log(message)
});
}
- ウィンドウBにロードされたコンポーネントでgetMsgChildを実行して監視し、ウィンドウAにロードされたコンポーネントにボタンクリックイベントを作成し、sendMsgMainをトリガーします。