c++ - 使用 QML 和 C++ 实现 Flux 架构

标签 c++ qt architecture qml flux

在 Qt/QML 的新项目范围内,我们目前正在寻找应用程序架构。我们正在考虑 Facebook Flux 架构的实现。

我发现了这个很好的库,它在某些方面使它变得如此:https://github.com/benlau/quickflux

在我们的例子中,我们希望用 C++ 管理存储和操作。然而,为 C++ 实现 Flux 存在一个问题。这是要传递给调度程序的数据类型。 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 元素提供其属性(在属性绑定(bind)中使用)。所有 Store 属性都在 C++ 部分中以受控方式更改。

附注 如果您更喜欢纯 C++ 实现,请检查 https://github.com/eandritskiy/flux_cpp (但请确保您的编译器支持 C++17 std::any)

关于c++ - 使用 QML 和 C++ 实现 Flux 架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43843463/

相关文章:

c++ - 为什么c++不能printf vector B[0]?

asp.net - 存储库是单例的还是静态的还是都不是?

android - 在 MVI 中访问 reducer 函数之外的状态

c++ - 为什么在这段代码中调用虚方法时会出现段错误?

c++ - constexpr 函数的主体不是返回语句

c++ - 为什么我不能重新分配以前在 C++ 堆栈上分配的变量( 'Frame' 的复制赋值运算符被隐式删除)?

c++ - Qt 中的 SQLite 数据库

c++ - Qt C++ C2143 : syntax error : missing ';' before '*'

c++ - 将 QString 转换为 char* 以用于第 3 方库的内存清理问题,如何解决?

c++ - 辅助函数 : static in cpp or define as static helper class method