首页 > 解决方案 > 是否可以在 React.JS 样式中使用 QT/LIBUI?

问题描述

React.JS 的一个优点是您不必关心将一个 UI 变为另一个 UI,神奇的 React DIFF 算法可以解决这个问题。

你定义你想要的 UI(单向model -> UI流),神奇的 React DIFF 算法负责将当前 UI 转换为所需的 UI。对于其他 UI 库,您通常需要手动处理并编写大量无聊的代码,如何将当前 UI 转换为新 UI 以响应某些事件或更改。

是否可以以类似的方式使用 QT5/LIBUI?我想我们可以称之为反应式 UI 风格,可能不完全像 React.JS,而是像 Vue.JS 或 svelte.js、Elm 等。

标签: reactjsqtuser-interfaceqt5

解决方案


简单的答案是肯定的。但就 Qt5 而言,它更加健壮且结构良好。比较这两种技术并不是一个好的决定。我是 Qt 爱好者,所以我可能会给你有偏见的意见。

这是关于Qt Property Binding的一些解释。

从该页面引用:

属性绑定

可以为对象的属性分配一个静态值,该值保持不变,直到显式分配一个新值。然而,为了充分利用 QML 及其对动态对象行为的内置支持,大多数 QML 对象都使用属性绑定。

属性绑定是 QML 的核心功能,它允许开发人员指定不同对象属性之间的关系。当一个属性的依赖值发生变化时,该属性会根据指定的关系自动更新。

在幕后,QML 引擎监控属性的依赖关系(即绑定表达式中的变量)。当检测到更改时,QML 引擎重新评估绑定表达式并将新结果应用于属性。


推荐阅读