【发布时间】:2011-06-23 17:35:29
【问题描述】:
我一直在尝试决定采用哪种方法来构建 UI:编程式或声明式。我正在使用 JavaScript 和网络技术。在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 的应用程序,我有两个选择可供选择。
Flex 还 supports 声明性 UI 和程序化 UI。 WFP 和 Silverlight 似乎正在关注XAML。此外,Open Laszlo 似乎使用了声明式方法。
然后我看到jQuery UI 是程序化的,Dojo Toolkit 介于这两种方法之间。
我有几个问题:
1) 动态(在运行时添加的组件)UI 能否仅以声明方式实现?
2) 支持这两种方法是否有意义,以便可以在大部分部分使用声明式样式,如果需要,使用程序化样式?
3) 你更喜欢哪一个?为什么?
【问题讨论】:
标签: user-interface theory declarative