Архитектура приложения на Electron.js, как лучше реализовать?
Решил разобраться как создавать десктопные приложение с помощью Электрона. Для первого тестового приложения выбрал тему по управлению школы-студии. Приложение должно будет включать такие компоненты:
- Расписание - отражает расписание на указанный период, crud для работы с ним.
- Услуги - отражает все услуги и имеет crud.
- Клиенты - отражает всех клиентов и имеет crud
- Преподователи - отражает всех преподом и имеет crud
- Абонементы - отражает все абонементы и имеет crud.
Исходя из чего предполагается будет состоять приложение, я создал приложение следуя инструкции с сайта электрона.
В index.html в разметке создал два элемента, это nav и main. В nav создал ссылки на препологаемые компоненты по клику на которые, берём значение href и на его основе создаём путь до файла с разметкой компонента и пишем в тэг main ( при таком подходе, каждый клик перезатирает все что в main). Вроде бы все ок, но, как быть с иницилизацией скриптов на загруженную разметку? Ведь изначально разметкам не имеет данных, вот тут я и встряваю.
Как мне организовать загрузке компаненотов и заполнение их данными, и инициализировать все сопутствующие ей скрипты, чтобы пользователь мог с ней взаимодействовать а она реагировать на его действия?
Самый простой способ - взять любой фреймворк где на все это уже ответили и написали служебный код до вас. React, angular, vue. Или хотя бы посмотрите принцип - как на их основе строятся приложения.
Но если хочется прямо все самому - то изучайте архитектуру приложения в принципе. Как работать с данными, как рисовать и обновлять интерфейс, как организовывать код, как решать кучу возникающий технических и прочих моментов. На пару лет развлечения хватит до более-менее нормального результата.
Виктор Янышев, все верно. В электрон-оболочку можно и обычный сайт упаковать. По сути электрон не что иное как нода, хром и ваш сайт упакованные так, чтобы запускаться как десктопное приложение. То есть ваше электрон приложение не что иное как ваш бэкенд запущенный в ноде и ваш фронтенд запущенный в хроме и взаимодействующие ровно так же как как и обычный сайт с сервером, а значит вы можете использовать любой из фреймворков для фронтенда и любой из фреймворков написаных на ноде для бэкенда.