什么是声明性UI?


16

我一直在关于框架的博客中看到这个术语。虽然我理解了声明式和命令式编程之间的区别,但这如何专门应用于UI?为什么似乎有一个特殊术语?这些是不同的“事物”吗?如果是这样,声明性UI的替代方案是什么?为什么要使用它?


1
@Telastyn。命令式和声明式是完全不同的东西。这是“什么”与“如何”。HTML布局将是声明性的。一系列绘图指令势在必行。
mike30 2012年

@mike:OP询问命令式/声明式UI是否与命令式/声明式编程不同。他们不是。
Telastyn

@Telastyn OP正在询问声明性UI和<foo> UI(例如“命令性UI”)之间的区别,以及是否存在声明性UI的替代方法。
Izkata 2012年

Answers:


14

“声明式用户界面”意味着您可以用某种语言描述用户界面中需要哪些元素,并在某种程度上描述它们的外观,但是您可以忽略一些细节,例如元素的确切位置和视觉样式。例如,在HTML中,您可以描述您想要一个输入字段,但是此字段在UI上的放置方式和位置在很大程度上取决于您使用的浏览器。

如今,该术语更常用于UI框架,并严格将UI的外观与行为分开,这意味着代码会对UI事件做出反应。例如,使用XAML,您可以在特定的XML方言中声明 UI的外观,但是可以在单独的程序代码中实现该行为。


1
好答案。Nitpick:是否指定了“精确位置”之类的细节,与声明性/命令性鸿沟正交。但是,在实践中,让计算机处理细节的方法在声明性系统中更为常见(尽管我不确定为什么)。
sleske 2012年

8

声明性UI是一种以声明性方式(您描述它的样子)设计的UI,而不是一种命令性方式(您对创建它的步骤进行编码)设计的UI。至少从1990年代开始,那时您有了Visual Basic和Delphi以及可视化表单设计器,使您可以以直观的所见即所得方式布置程序的用户界面。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.