gpt4 book ai didi

wpf - XAML 和 QML 等声明式 UI 语言在现实世界中有何好处?

转载 作者:行者123 更新时间:2023-12-03 04:14:34 28 4
gpt4 key购买 nike

我目前正在评估QtQuick (Qt 用户界面创建工具包)将作为 Qt 4.7 的一部分发布。 QML是 QtQuick 背后基于 JavaScript 的声明性语言。

这似乎是一个非常强大的概念,但我想知道是否有人广泛使用其他更成熟的声明式 UI 语言,例如 XAML WPF 或 Silverlight 中的示例可以让您深入了解从这种编程风格中可以获得的实际好处。人们经常提到各种优点:

  • 开发速度
  • 强制分离表示和逻辑
  • 编码人员和设计人员之间更好的集成
  • UI 更改不需要重新编译

另外,有什么缺点吗?我想到了一些潜在的值得关注的领域:

  • 执行速度
  • 内存使用情况
  • 增加了复杂性

还有其他需要考虑的因素吗?

最佳答案

(已更新)

对 XAML 的误解是它没有经过编译。它确实被编译为 BAML(一种二进制预标记化 XAML)。显然还有一个 XAML 的 IL 编译版本,称为 CAML。 OP 向我指出了这个 good article解释什么是 XAML/BAML 和 CAML。

无论如何,对于为什么使用它的问题:

XAML 只是 C# 对象的一种序列化格式,它特别适合描述分层对象结构,如 WPF GUI 中的结构。

WPF 帮助您编写不那么无聊的 C# 代码,如下所示:

var grid = new Grid();
grid.Content.add(new TextBlock() {Text = "Hello"});
grid.Content.add(new TextBlock() {Text = "World"});

并以更易读的方式表达它,如下所示:

<Grid>
<TextBlock Text="Hello">
<TextBlock Text="World">
</Grid>

由于 WPF 对象嵌套(将内容放入其他对象中)可能会变得非常深,因此 WPF 使其比生成的 C# 代码更容易阅读。

至于关注点分离:XAML 在这里也有帮助,因为它只允许您表达对象及其关系/属性,而不是逻辑。这迫使您将逻辑与 UI 布局分开。 MVVM 模式非常适合此任务,并且允许轻松测试和可互换 View 。

XAML 中增加的复杂性也可以轻松消除,因为 C# 中的相同代码很容易变得比 XAML 标记更复杂。

不过,我无法让您深入了解 QTQuick。抱歉

关于wpf - XAML 和 QML 等声明式 UI 语言在现实世界中有何好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2706037/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com