数据绑定框架的缺点是什么?

时间:2014-04-07 01:09:18

标签: wpf angularjs data-binding

我见过很多数据绑定框架,比如WPF,AngularJS(Javascript),JSTL(JSP)。 他们试图完全分离UI和数据。

然而,一个主要问题是它增加了复杂性。有时,您必须为一行UI代码编写大量额外代码(例如扩展视图类)。

在现代应用程序中,将一个UI元素从一个状态更改为另一个状态时,有许多过渡动画。使用数据绑定框架时,​​似乎并不容易。

还有其他使用数据绑定框架的缺点吗?


例如,要将焦点设置在文本输入上,在AngularJS中如此复杂,请参阅: How to set focus on input field?

1 个答案:

答案 0 :(得分:1)

以下所有内容均指WPF。

  

您必须为一行UI代码编写大量额外代码(例如扩展视图类)。

关于WPF,这种情况很少见,您可举一个例子吗?

  

将一个UI元素从一个状态更改为另一个状态时,有许多过渡动画。

在WPF中,自.NET 3.5版本出现VisualStateManager

  

VisualStateManager使您可以指定控件的状态,控件在某个状态时的外观以及控件何时更改状态。

他的目标 - 定义应用程序状态,并为每个状态执行动作,例如动画。在这种情况下,Binding不会这样使用。

  

使用数据绑定框架时,​​似乎并不容易。

我不认为这是不利的。您提到的数据绑定需要:separate UI and Data completely。实际上,整个MVVM模式都基于数据绑定这一强大的技术。此功能允许您通过ViewModel在Model和View之间创建抽象连接。关键字是 Data ,在处理数据的任何地方,最好使用Data Binding

Binding允许您执行许多有趣的操作,例如ValidationConverters等等。它通常用于绑定属性,仅此而已。要使用其他功能(如VisualStateManager,Triggers,DataTriggers等)来处理UI,并且在将其用于目的地时并不困难,只需要习惯。

唯一的缺点是Binding可以用于其他目的,例如在没有它的情况下使用转换器。是的,起初它可能看起来很不寻常,但我不认为这是一个缺点,对其他技术也是如此。

即使可以说有关性能的缺点。如果您直接或通过Binding指定值,则直接指定值将更快。但我认为Bindings的优势不容忽视它。