值绑定vs数据绑定
这篇文章解释了两者之间的区别价值
而且@bind-Value
值绑定和数据绑定之间。
本文包含以下部分:
值绑定
在本文档中,我们将把值绑定称为在组件及其父组件之间传递值的过程。值绑定告诉组件从视图模型中获取相应字段的值并使用它。
值绑定有两种形式:
单向绑定-语法类似
< ParameterName > = " @someField "
例如,值= " @someField "
,页面= " @someField "
.双向绑定-语法类似
@bind——< ParameterName > = " @someField "
例如,@bind-Value = " @someField "
,@bind-Page = " @someField "
.
单向绑定
单向绑定可以不如果组件更改了值,则更新视图模型。
在使用单向绑定时,您可以可以使用< ParameterName >改变
事件。例如,您可以两者都使用价值
而且ValueChanged
.
要在单向绑定场景中更新视图模型,请处理相应的操作<参数>改变
事件。在处理程序中,用新数据更新视图模型。这允许您对新值应用一些同步逻辑,并在未将新值设置为视图模型时有效地取消更新。
如果在表单内部使用单向绑定,则可能会得到类似于未处理的异常呈现组件:Telerik.Blazor.Components.TelerikTextBox需要一个'ValueExpression'的值。
.使用双向绑定时就不会发生这种情况。你可以找到更多的细节和解决这个问题的方法需要ValueExpression的值篇文章。
双向绑定
双向绑定更新视图模型字段,如果组件更改了值。
在使用双向绑定时,您可以不能使用< ParameterName >改变
事件。如果你使用@bind-Value
然后加上ValueChanged
,框架将抛出异常。在Blazor中使用双向绑定,事件已经被处理以填充视图模型,因此您不能再次处理它。
数据绑定
在本文档中,我们将把数据绑定称为为组件提供它将使用和显示的数据(模型)集合的过程。
在这种情况下没有双向绑定,数据流是从父组件到子组件的。有时,父组件需要知道子组件中的数据更改。通常的方法是引发父视图模型可以处理的特定事件,并将必要的更改应用到它自己的视图模型。
数据绑定包括以下步骤:
在视图模型中使用所需的模型/原语类型集创建集合。你通常会从特定于应用程序的数据服务中获得它。
指向的
数据
参数的Telerik组件的集合。设置其他必要的参数,指导组件如何处理该数据(例如指定ID字段、文本和值字段等)。
MSDN与Telerik文档中的术语
在MSDN文档中@bind
或@bind-Value
语法被称为“数据绑定”,因为它携带一段数据到/从视图模型到输入组件(如简单的<输入/ >
或者它的等价形式——the< InputText / >
).
在用于Blazor文档的Telerik UI中@bind-Value
语法被称为“值绑定”,因为它在视图模型之间携带字段值。
在用于Blazor文档的Telerik UI中,我们将“数据绑定”称为向组件提供模型集合的过程,以便该组件能够使用这些模型。例如,显示它们——网格中的行、调度程序中的约会、下拉列表中的项。
在MSDN文档中,没有涉及到向这样的组件提供数据—它使用简单的HTML元素和@foreach
要生成的循环<选项>
元素的下拉列表或< tr >
网格的元素。
在被认为是组件套件的基本场景的框架中缺乏术语,这导致了我们使用的约定的差异。