所以我知道这是有效的,因为我尝试过,但它没有在任何地方记录,所以我问是否可以使用这种做法,而不用担心它将来会停止工作(众所周知,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(使用前将#替换为@)