我正在使用Vue.js和Electron。它工作得很好,我可以使用webContents.send(...)
将所有数据传递给mainRenderer。
问题是,我的应用程序有不同的页面。实际上,当用户单击渲染器进程中的链接时,它们会加载webContents.loadURL(...)
:
this.window.loadURL(`file://${__dirname}/html/index.html`)
...
ipcMain.on("login", (event: any, message: any) => {
// getting the user from the message ...
...
this.window.webContents.loadURL(`file://${__dirname}/html/loggedin.html`)
this.window.webContents.once("dom-ready", () => {
this.window.webContents.send("user", user)
})
})
这有效,但有一个问题:当加载DOM时,Vue只能完成他的神奇工作。因此,有时会出现小的闪烁,因为页面上的数据无法像Electron显示已加载的DOM那样快速地更改(Vue必须在DOM的末尾加载)。
那么这样做的最佳做法是什么?我想过使用Express和模板系统,但在Electron中运行网络服务器感觉不对。