【问题标题】:Emit custom events in electron app from main to renderer在电子应用程序中从主向渲染器发出自定义事件
【发布时间】:2018-01-16 15:04:08
【问题描述】:

所以我知道这是可行的,因为我试过了,但它没有在任何地方记录,所以我问是否可以使用这种做法,并且不用担心它将来会停止工作(众所周知,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 中,并且我想确保这是正确的方法。

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

【问题讨论】:

    标签: javascript node.js electron


    【解决方案1】:

    主进程几乎总是应该只用于创建 BrowserWindows 和访问在文档中标记为只能通过主进程访问的电子 API。

    查看this article 以了解有关主/渲染器之间差异及其用途的更多详细信息。 Chromium 进程架构意味着主进程中的任何阻塞代码也会阻塞渲染器。

    您的所有应用程序代码都应该在渲染进程中,如果您正在执行长时间运行的进程,这些代码应该被撞到 Web Worker 或其他渲染器进程中。 electron-remote 可以帮你做到这一点。

    如果你想在主进程和渲染器进程之间进行通信,你应该使用documentedAPI's

    【讨论】:

      猜你喜欢
      • 2021-03-25
      • 1970-01-01
      • 1970-01-01
      • 2017-05-14
      • 2018-10-10
      • 1970-01-01
      • 2020-04-03
      • 2022-01-07
      • 2021-07-06
      相关资源
      最近更新 更多