[Electron] ipcMain 和 ipcRenderer

ipcMain

const { ipcMain } = require("electron");

ipcMain.handle("click-me", (_, msg) => {
  return "<----" + msg + "---->";
})

ipcRenderer

const { contextBridge, ipcRenderer } = require("electron");

contextBridge.exposeInMainWorld("electron", {
  platform: process.platform,
  clickMe: (msg) => ipcRenderer.invoke("click-me", msg)
});

App.vue

<script lang="ts" setup>
import {ref} from "vue";

const result = ref("")
const message = ref("")

async function handleClick() {
  result.value = await window.electron.clickMe(message.value)
}
</script>

<template>
  <input v-model="message"/>
  <button @click="handleClick">click me</button>
  <p>{{ result }}</p>
</template>

简单梳理

  1. 页面点击;
  2. ipcRenderer 发送;
  3. ipcMain 处理和返回;
  4. ipcRenderer 收取;
posted @   Himmelbleu  阅读(21)  评论(0编辑  收藏  举报
历史上的今天:
2022-10-06 XShell 连接 VMware Linux
首页
随笔
博客园
我的
标签
管理
[Electron] ipcMain 和 ipcRenderer
发表于 2024-10-06 00:38
|
已有 20 人阅读
|
留下 0 条评论
|
全文字数 ≈ 0字

ipcMain

JS
const { ipcMain } = require("electron");

ipcMain.handle("click-me", (_, msg) => {
  return "<----" + msg + "---->";
})

ipcRenderer

JS
const { contextBridge, ipcRenderer } = require("electron");

contextBridge.exposeInMainWorld("electron", {
  platform: process.platform,
  clickMe: (msg) => ipcRenderer.invoke("click-me", msg)
});

App.vue

HTML
<script lang="ts" setup>
import {ref} from "vue";

const result = ref("")
const message = ref("")

async function handleClick() {
  result.value = await window.electron.clickMe(message.value)
}
</script>

<template>
  <input v-model="message"/>
  <button @click="handleClick">click me</button>
  <p>{{ result }}</p>
</template>

简单梳理

  1. 页面点击;
  2. ipcRenderer 发送;
  3. ipcMain 处理和返回;
  4. ipcRenderer 收取;
作者:Himmelbleu
出处: https://www.cnblogs.com/Himmelbleu/#/p/18448760
版权:本作品采用「 署名-非商业性使用-相同方式共享 4.0 国际 」许可协议进行许可。
历史上的今天:
2022-10-06 XShell 连接 VMware Linux
文章目录
ipcMain
ipcRenderer
App.vue
简单梳理
点击右上角即可分享
微信分享提示