我一直在努力决定采用哪种方法来构建UI:程序化或声明性。我正在使用JavaScript和Web技术。在ExtJS和YUI等项目中,他们采用了程序化方法:
var container = new Ext.Container({
style: 'padding: 4px;',
items: [
new Button({text: 'hello'})
]
});
container.render(document.body);
当您需要动态创建视图组件(?)时,编程方法可能是必需的。它也可以更容易编程,至少对我而言,因为我已经习惯了API和代码助手。
然而,一些技术如XUL(用于Firefox和Thunderbird UI)基于声明式方法:
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window id="vbox example" title="Example 3...."
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<vbox>
<button id="yes" label="Yes"/>
<button id="no" label="No"/>
<button id="maybe" label="Maybe"/>
</vbox>
</window>
还有一个名为AmpleSDK的JavaScript GUI框架采用声明式方法。因此,对于基于JavaScript的应用程序,我有两种选择可供选择。
还提供supports声明性用户界面以及程序化用户界面。世界粮食计划署和Silverlight似乎关注XAML。此外,Open Laszlo似乎使用声明性方法。
然后我看到jQuery UI是程序化的,Dojo Toolkit是两种方法之间的东西。
我脑子里有几个问题:
1)动态(在运行时添加的组件)UI是否可以仅以声明方式实现?
2)支持这两种方法是否有意义,以便可以在大多数部分使用声明式样式,如果需要,可以使用编程风格?
3)您更喜欢哪一个?为什么?
答案 0 :(得分:1)
1)是的,您可以随时执行以下操作:elem.innerHTML =“&lt; content&gt;”;大多数语言支持类似的东西。
2)从我所看到的,大多数语言都支持这两种语言。我猜到最后,一个品种刚刚转变为另一个品种。通过不支持其中一种,语言会限制自己。 (我不想使用xyz,我无法以声明方式/编程方式编写UI。)
3)我个人喜欢声明,它倾向于用更少的行完成事情。
答案 1 :(得分:0)
这取决于您想要制作的应用程序类型:
声明性语法更好,更易于管理
声明性和程序性的混合将是最好的