electron 用于初始化应用程序的电子js /进程间通信

8tntrjer  于 2022-12-16  发布在  Electron
关注(0)|答案(1)|浏览(110)

我想知道初始化一个电子应用程序的最佳实践。我决定在主端管理配置。我有一个类加载config.json文件,其中包含获取属性的所有方法。我对用数据填充渲染器视图的流程有疑问。以下是我的想法:
1.渲染器(函数)-〉预加载(调用)-〉主(句柄)-〉返回预加载-〉返回渲染器

  1. main(webContents.send)-〉preload.on(回调)-〉呈现器(回调)
    有没有其他更好的方法来做到这一点?将所有配置都放在主端正确吗?
    谢谢
shyt4zoc

shyt4zoc1#

使用主进程初始化应用程序是正确的方法。
在创建主窗口之前,您可以初始化配置模块和应用程序配置数据。
接下来,使用new BrowserWindow()创建主窗口,但将show选项设置为falseshow: false。这将隐藏窗口。
接下来,使用IPC主进程渲染进程传递正确设置渲染内容所需的任何配置数据。从主进程发送:在渲染过程中发送(channel,... args)和接收:ipcRenderer.on(通道,侦听器)。
最后,show()您的窗口。
这是我过去使用过的流程,效果很好。
此外,如果您有一个“配置”窗口,可以在其中更改应用程序设置:
1.[渲染过程] -通过IPC将单个变更传达给主过程。
1.[Main Process(主进程)] -让您的主进程配置模块更新特定的内存中配置对象值。
1.[主进程] -JSON.stringify()配置对象并(重新)将其覆盖当前(config.json)文件。
1.[主进程] -通过IPC将更新的配置对象传送到渲染进程。
1.[渲染过程] -侦听并在接收到内容时,通过使用渲染端配置模块更新任何内容。
我更喜欢上述过程,因为:
1.呈现进程应仅用于呈现内容。其他任何操作都可能减慢或冻结呈现进程。
1.主进程可以处理繁重的工作,如更新(配置)对象、(重新)写入文件等。
1.呈现中保留了简单的逻辑,例如检测UI事件并将其传输回主进程,以及在主进程请求时重新绘制内容。
1.最后,如果您的UI在设置更改后更新,您就知道整个过程工作正常。
我使用上述技术不仅是为了设置(配置)更改,而且是为了记住用户对UI的定制,如列宽和排序、显示或隐藏面板、选择和排序喜爱的项目等。

相关问题