服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服务器之家 - 编程语言 - JavaScript - js教程 - electron渲染进程主进程相互传值示例解析

electron渲染进程主进程相互传值示例解析

2023-05-23 14:58雾恋 js教程

这篇文章主要为大家介绍了electron渲染进程主进程相互传值示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

在electron中分为渲染进程和主进程

渲染进程就是浏览器环境,主进程就是node环境

既然他们是不同的环境,那么为我们怎么让他们相互关联起来呢?或者说怎么传递值? 毕竟在开发中可能会遇到我想要的值只能在node环境中才能获取,然后node中可能也会需要浏览器环境的值;这个时候就需要两个环境联通起来相互传值

浏览器传值给主进程

浏览器环境

引入:

?
1
import { ipcRenderer } from "electron";

使用:

?
1
ipcRenderer.send("reader-json-file", '123');

主进程

引入:

?
1
import { ipcMain } from "electron";

使用:

?
1
2
3
ipcMain.on('reader-json-file',(event, num)=>{
    console.log(num); // 123 (字符串类型)
})

完成以上的操作我们就可以在主进程中获取到渲染进程传递过来的值了

主进程传值给渲染进程

在这个的时候跟以上有一点点差异,这个是需要拿到你创建这个窗口(主进程的变量值),然后将其传值给他,并在渲染进程中接收

主进程

使用:

?
1
win.webContents.send('reader-json-file-data','456');

这儿的win是你在创建窗口时的变量,如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
win = new BrowserWindow({
  width: 1000,
  height: 600,
  minWidth: 800,
  minHeight: 600,
  // 不要边框
  frame: false,
  webPreferences: {
    webviewTag: true,
    // 禁止同源策略,避免 axios 无法使用
    webSecurity: false,
    // Required for Spectron testing
    enableRemoteModule: !!process.env.IS_TEST,
    nodeIntegration: true,
    contextIsolation: false
    // Use pluginOptions.nodeIntegration, leave this alone
    // See nklayman.github.io/vue-cli-plugin-electron-builder/guide/security.html#node-integration for more info
    // nodeIntegration: (process.env
    //     .ELECTRON_NODE_INTEGRATION as unknown) as boolean,
    // contextIsolation: !process.env.ELECTRON_NODE_INTEGRATION
  }
})

渲染进程

在vue中的话:可以在生命周期mounted、created中监听

?
1
2
3
ipcRenderer.on("reader-json-file-data", (event, value) => {
    console.log(value); // 456 (字符串类型)
});

注意

渲染进程和主进程相互传值可以是任意类型(我这边测试过可以传递的值,布尔、数字、字符串、对象都是可以的),我这边只是做了一个演示,所以就是传递了一个字符串类型的数字;

以上就是electron渲染进程主进程相互传值示例解析的详细内容,更多关于electron进程渲染传值的资料请关注服务器之家其它相关文章!

原文链接:https://juejin.cn/post/7197239663102623804

延伸 · 阅读

精彩推荐
  • js教程JavaScript实现循环轮播图

    JavaScript实现循环轮播图

    这篇文章主要为大家详细介绍了JavaScript实现循环轮播图,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    休息休息夏3802022-02-27
  • js教程JavaScript中的for循环与双重for循环详解

    JavaScript中的for循环与双重for循环详解

    这篇文章主要给大家介绍了关于JavaScript中for循环与双重for循环的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习...

    Lumoom9082022-02-17
  • js教程微信小程序实现购物车小功能

    微信小程序实现购物车小功能

    这篇文章主要为大家详细介绍了微信小程序实现购物车小功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    小王同学Max5752021-12-22
  • js教程JavaScript实现鼠标拖拽调整div大小

    JavaScript实现鼠标拖拽调整div大小

    这篇文章主要为大家详细介绍了JavaScript实现鼠标拖拽调整div大小,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    BDawn9272022-02-12
  • js教程原生js实现放大镜组件

    原生js实现放大镜组件

    这篇文章主要为大家详细介绍了js实现放大镜组件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    蒲公英芽5422022-01-06
  • js教程JavaScript中arguments的使用方法详解

    JavaScript中arguments的使用方法详解

    这篇文章主要给大家介绍了关于JavaScript中arguments的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的...

    等待的L先生3782021-12-15
  • js教程js闭包的9个使用场景

    js闭包的9个使用场景

    这篇文章主要介绍了js 闭包的9个使用场景,帮助大家更好的理解和学习JavaScript 闭包的使用,感兴趣的朋友可以了解下...

    林恒10322021-12-22
  • js教程three.js 实现露珠滴落动画效果的示例代码

    three.js 实现露珠滴落动画效果的示例代码

    这篇文章主要介绍了three.js 实现露珠滴落动画效果的示例代码,非常不错,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...

    稀土掘金11372022-01-24