在电子应用程序中从主程序到渲染器发出自定义事件

2024-04-14

所以我知道这是有效的,因为我尝试过,但它没有在任何地方记录,所以我问是否可以使用这种做法,而不用担心它将来会停止工作(众所周知,Electron 和 Nodejs 会破坏一个东西)版本到另一个)

这就是我所说的练习类型:

main.js

app.emit('did-something', param1, param2);

renderer.js(浏览器窗口)

const {app} = require('electron').remote;

app.on('did-something', (param1, param2) => {
  $('#whatever').text(param1);
});

本质上,我试图将所有不直接处理 HTML 的代码(例如数据库交互)移至 main.js 中,并且我想确保这是正确的方法。

另外,如果我用自己的方法和属性扩展应用程序对象可以吗?


主进程几乎应该始终仅用于创建 BrowserWindows 和访问电子 API,这些 API 在文档中标记为只能通过主进程访问。

查看本文 https://codeburst.io/deep-dive-into-electrons-main-and-renderer-processes-7a9599d5c9e2有关主/渲染器之间的差异及其用途的更多详细信息。 Chromium 进程架构意味着主进程中的任何阻塞代码也会阻塞渲染器。

您的所有应用程序代码都应位于渲染进程中,如果您正在执行长时间运行的阻塞代码,则该代码应在 Web Workers 或其他渲染器进程中运行。

如果你想在主进程和渲染进程之间进行通信,你应该使用有记录的 https://electronjs.org/docs/api/ipc-main API's https://electronjs.org/docs/api/web-contents#contentssendchannel-arg1-arg2-.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在电子应用程序中从主程序到渲染器发出自定义事件 的相关文章

随机推荐