Электронное меню и структура проекта - PullRequest
1 голос
/ 27 января 2020

Немного новичка ie с Electron и обучением из некоторых видео-роликов YouTube и курса Udemy.

У меня есть несколько примеров приложений, которые запущены - пока все хорошо, но мой вопрос заключается в следующем :

Теперь, когда я начинаю рассматривать дизайн / структуру, которую я бы использовал для гораздо более крупного и более значимого приложения, я хочу переместить все мои меню в исходную папку, такую ​​как '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

Где каждый файл содержит правильное меню в зависимости от того, где пользователь «находится» в приложении и что он пытается сделать.

Может ли кто-нибудь указать мне правый стремление к тому, как этого добиться? Должен ли каждый из этих. js файлов быть модулем? Если так, что и как экспортировать json?

I sh, чтобы Menu.buildFromTemplate () просто принимал путь. Это сделало бы жизнь намного проще. Спасибо!

1 Ответ

1 голос
/ 28 января 2020

У вас могут быть очень простые модули, которые просто экспортируют по одному объекту шаблона меню каждый:

// menuTemplates/menu1.js

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

А затем вы можете построить меню, как вы его знаете:

const menu1_template = require("menuTemplates/menu1.js");
const menu1 = Menu.buildFromTemplate(menu1_template);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...