Javascript 电子多窗口工控机体系结构
我计划用Javascript 电子多窗口工控机体系结构,javascript,electron,software-design,Javascript,Electron,Software Design,我计划用electron构建一个软件,它应该有许多不同的窗口。我已经阅读了一本书并研究了文档,以熟悉electronipc模块及其工作原理 这个概念对我来说很有用,有很多可以管理的窗口,但更多的窗口会让我的应用程序变得更加混乱 我还不熟悉javascript和基于原型的面向对象编程 我试图想象如何在不丢失main.js概述的情况下构建一个大型软件 问题是main.js需要为每个窗口使用特定的ipc方法。我想到了一个解决方案,在这个解决方案中,我可以将ipc方法保存在具有相关名称的其他javasc
electron
构建一个软件,它应该有许多不同的窗口。我已经阅读了一本书并研究了文档,以熟悉electronipc模块及其工作原理
这个概念对我来说很有用,有很多可以管理的窗口,但更多的窗口会让我的应用程序变得更加混乱
我还不熟悉javascript和基于原型的面向对象编程
我试图想象如何在不丢失main.js概述的情况下构建一个大型软件
问题是main.js需要为每个窗口使用特定的ipc方法。我想到了一个解决方案,在这个解决方案中,我可以将ipc方法保存在具有相关名称的其他javascript文件中
现在我需要在main.js中执行以下操作,例如:
ipcMain.on('window1-call1' .. {
//do stuff
}
ipcMain.on('window1-call2' .. {
//do stuff
}
ipcMain.on('window2-call1' .. {
//do stuff
}
and so on .....
下面是我的main.js
,preload.js
和renderer.js
要演示如何构建一个简单的IPC示例,请执行以下操作:
//main.js
ipc.on('open-directory-dialog', function (event) {
dialog.showOpenDialog(mainWindow, {
title: 'Select a image...',
properties: ['openFile'],
defaultPath: '/home',
buttonLabel: "Select...",
filters: [
{ name: 'Images', extensions: ['jpg', 'png', 'gif'] }
]
}, function (files) {
if (files) event.sender.send('selectedItem', files)
})
})
使用这种方法,我必须在main.js中创建每个窗口(这将增长main.js),并确保为正确的窗口调用特定的ipc方法。
回调方法还需要为每个窗口调用特定的方法
所以我需要很多方法,这个构造看起来不是很灵活
是否有任何最佳实践可以防止main.js发展为“无限”并获得更灵活的ipc方法?您设想有多少个窗口,它们各自执行不同的任务,还是都执行相同的任务(例如,图像查看器,每个照片打开一个窗口)我想大概有20-30扇窗户。每个窗口都应该执行其他任务。我想建立一个小的账单软件,你设想有多少个窗口,每个窗口都在执行不同的任务,还是都在执行相同的任务(例如,一个图像查看器,每个照片打开一个窗口)?我想大约有20-30个窗口。每个窗口都应该执行其他任务。我想建立一个小票软件
//preload.js
window.ipcFiledialog = function (channel) {
ipcRenderer.send('open-directory-dialog')
}
//callback
ipcRenderer.on('selectedItem', function (event, path) {
setSelectedItem(path)
})
//renderer.js
selectDirBtn.addEventListener('click', function (event) {
window.ipcFiledialog('open-directory-dialog')
})
function setSelectedItem (files) {
document.getElementById('selectedItem').innerHTML = files
}