qt — Реализация архитектуры Flux с QML и переполнением стека

В рамках нового проекта в Qt / QML, мы в настоящее время ищем архитектуру приложения. Мы думаем о реализации архитектуры Flux от Facebook.

Я нашел эту хорошую библиотеку, которая делает это несколькими способами: https://github.com/benlau/quickflux

В нашем случае мы хотели бы управлять магазинами и действиями на C ++. Однако существует проблема в создании реализации Flux для C ++. Это тип данных для передачи в Dispatcher. C ++ является языком строгого типа, но Dispatcher позволяет передавать любые данные в функцию dispatch (). Он может использовать тип QVariant так же, как и Quick Flux. Но я думаю, что разработчик C ++ не очень нравится этот подход.

У вас был бы способ решить эту проблему?

Спасибо за твои ответы

2

Решение

Мой ответ может быть устаревшим, но, возможно, поможет кому-то с таким же вопросом …

Вы можете попробовать использовать 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)

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]