0

我刚开始学习electron。我想知道在预加载脚本中使用调用是否是个好主意ipcRenderer,即:

const sc = require('./StaticContent');
const dc = require('./DynamicContent');
const { ipcRenderer } = require('electron');

window.addEventListener('DOMContentLoaded', () => {
    document.getElementById('view').innerHTML = sc.getInfoPage();
    document.getElementById('menu-info').addEventListener('click', (evt) => {
        ipcRenderer.send('load-info');
    });


    ipcRenderer.on('get-view', (event, arg) => {
        document.getElementById('view').innerHTML = arg;
    });
});

我阅读的每个教程都使用外部js文件来管理ipcRenderer调用,甚至不使用preload脚本。但它有效。

ipc我也可以在不调用的情况下实现我想要的:

window.addEventListener('DOMContentLoaded', () => {
    document.getElementById('view').innerHTML = sc.getInfoPage();
    document.getElementById('menu-info').addEventListener('click', (evt) => {
        document.getElementById('view').innerHTML = sc.getInfoPage();
    });
});

哪一个更好?我不知道有什么负面影响,我只想从一开始就学习最佳实践。

4

1 回答 1

1

是的,您绝对可以在预加载脚本内部使用,您可以在此处ipcRenderer查看示例。

你是否应该最终取决于你的目标。

如果您需要让主进程做某事,那么您必须使用 ipc 将消息从预加载脚本发送到主进程。如果您不需要任何主进程,并且只需在运行预加载脚本的渲染器的上下文中执行代码就可以了,那么您可以随意在那里运行您的代码。

在您的情况下,只在预加载脚本中进行所有 DOM 操作可能是有意义的。向主进程发送消息只是为了让它将消息发送回渲染器以执行您的get-view处理程序只是无缘无故的额外工作。

于 2019-10-30T01:40:43.033 回答