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 に答える