В рамках нового проекта в Qt / QML, мы в настоящее время ищем архитектуру приложения. Мы думаем о реализации архитектуры Flux от Facebook.
Я нашел эту хорошую библиотеку, которая делает это несколькими способами: https://github.com/benlau/quickflux
В нашем случае мы хотели бы управлять магазинами и действиями на C ++. Однако существует проблема в создании реализации Flux для C ++. Это тип данных для передачи в Dispatcher. C ++ является языком строгого типа, но Dispatcher позволяет передавать любые данные в функцию dispatch (). Он может использовать тип QVariant так же, как и Quick Flux. Но я думаю, что разработчик C ++ не очень нравится этот подход.
У вас был бы способ решить эту проблему?
Спасибо за твои ответы
Мой ответ может быть устаревшим, но, возможно, поможет кому-то с таким же вопросом …
Вы можете попробовать использовать C ++ / Qt реализацию Flux-подобного шаблона приложения https://github.com/eandritskiy/flux_qt
Пожалуйста, проверьте пример QML.
Есть только 2 класса, которые экспортируются в движок QML: ActionProvider и Store. ActionProvider отвечает за генерацию действий в целом приложении (в части QML и в части C ++). Store предоставляет свои свойства (которые используются в привязках свойств) к элементам QML. Все свойства Store изменяются контролируемым образом в части C ++.
Постскриптум
Если вы предпочитаете чистую реализацию C ++, пожалуйста, проверьте
https://github.com/eandritskiy/flux_cpp (но убедитесь, что ваш компилятор поддерживает C ++ 17 std :: any)
Других решений пока нет …