电子菜单和项目结构

Electron Menus and Project Structure

Electron 的新手,从一些 YouTube 视频和 Udemy 课程中学习。

我有几个示例应用程序,运行 - 到目前为止还不错,但我的问题是:

既然我开始考虑 design/structure,我会用它来做一个更大、更有意义的应用程序,我想将我所有的菜单移动到像 'menuTemplates' 这样的源文件夹中文件夹我可能需要存储 10-15 个不同的菜单结构。

在每个文件中,我希望能够放置如下结构:

 {
    label: "Menu",
      submenu: [
        { 
          label: "One",
          submenu: []
        },
        {
          label: "Two",
          submenu: []
        },
        {
          label: "Quit", 
          click() {
            app.quit()
          }
        }
      ]
 }

换句话说,我只想将定义菜单的 json 个文件放入类似这样的内容中:

menuTemplates/menuMain.js

menuTemplates/browseForFileModel,js

menuTemplates/editUrl.js

每个文件包含正确菜单的位置取决于用户 'is' 在应用程序中的位置以及他们正在尝试做什么。

有人可以为我指明正确的方向以实现这一目标吗?每个 .js 文件都应该是一个模块吗?如果是,导出什么以及如何导出 json?

我希望 Menu.buildFromTemplate() 只接受一条路径。那会让生活变得简单得多。 谢谢!

您可以拥有非常简单的模块,每个模块只导出一个菜单模板对象:

// menuTemplates/menu1.js

module.exports = {
    label: "Menu",
    submenu: [
        // menu template ..
    ]
}

然后您可以构建您所知道的菜单:

const menu1_template = require("menuTemplates/menu1.js");
const menu1 = Menu.buildFromTemplate(menu1_template);