Blazor:绑定 OnChange 事件 - 可以使用 EventCallback.Factory.CreateBinder?
Blazor: Binding OnChange events - okay to use EventCallback.Factory.CreateBinder?
我是 Blazor 的新手,在设计组件时我 运行 举了一个例子,其中有人使用我不熟悉的绑定方法。
他们使用 EventCallback.Factory.CreateBinder() 而不是 relevant Microsoft documements detailing how to bind data.
中所示的绑定技术
这是他们完成绑定的方式:
@onchange="EventCallback.Factory.CreateBinder<string>(
this,
value => CurrentValueAsString = value,
CurrentValueAsString,
null)"
但我过去看到的方式涉及一个具有特定名称的方法,如 'ValueChanged' 作为事件回调来处理绑定。 As shown here.
使用 EventCallback.Factory.CreateBinder() 方法而不是 Microsoft 文档中概述的方法有什么缺点吗?
当我用谷歌搜索 CreateBinder() 方法时,我看到它被标记为“仅供内部使用”。这是否意味着我不应该使用它? Shown as "internal use only" here.
@onchange="EventCallback.Factory.CreateBinder<string>(
this,
value => CurrentValueAsString = value,
CurrentValueAsString,
null)"
这太熟练了...但有时可能比提供方法名称更好。上面@onchange 指令属性的值与编译器在 BuildRenderTree 方法中生成的值非常相似。
But the way that I have seen it in the past involved a method with a specific name like 'ValueChanged' as an event callback to take care of the binding. As shown here.
这里你指的是 parent 和它的 child 之间的组件绑定。但是,上面带有@onchange 指令属性的代码片段与元素data-binding 相关...实际上它们基于相同的原理。
如果将 child 组件绑定到其 parent 的 MyValue 属性,如下所示:
以及 child 组件中的以下内容:
[Parameter]
Public string Value {get;set;}
[Parameter]
Public EventCallback<string> ValueChanged {get;set;}
然后编译器将创建执行绑定的代码 (two-way data-binding)。如果您查看该文件,您会注意到编译器生成的代码与用于元素数据绑定的代码几乎相同。
Are there any downsides to using the EventCallback.Factory.CreateBinder() method instead of the way outlined in the Microsoft documents?
我不这么认为...
When I googled the CreateBinder() method, I saw that it was marked for "internal use only". Does this mean that I'm not supposed to use it?
我们不应该做很多事情...
您应该通过模仿来学习...我在 github 的问题的评论中看到 Blazor 团队的人使用 CreateBinder...不是世界末日。由你决定...
我是 Blazor 的新手,在设计组件时我 运行 举了一个例子,其中有人使用我不熟悉的绑定方法。
他们使用 EventCallback.Factory.CreateBinder() 而不是 relevant Microsoft documements detailing how to bind data.
中所示的绑定技术这是他们完成绑定的方式:
@onchange="EventCallback.Factory.CreateBinder<string>(
this,
value => CurrentValueAsString = value,
CurrentValueAsString,
null)"
但我过去看到的方式涉及一个具有特定名称的方法,如 'ValueChanged' 作为事件回调来处理绑定。 As shown here.
使用 EventCallback.Factory.CreateBinder() 方法而不是 Microsoft 文档中概述的方法有什么缺点吗?
当我用谷歌搜索 CreateBinder() 方法时,我看到它被标记为“仅供内部使用”。这是否意味着我不应该使用它? Shown as "internal use only" here.
@onchange="EventCallback.Factory.CreateBinder<string>(
this,
value => CurrentValueAsString = value,
CurrentValueAsString,
null)"
这太熟练了...但有时可能比提供方法名称更好。上面@onchange 指令属性的值与编译器在 BuildRenderTree 方法中生成的值非常相似。
But the way that I have seen it in the past involved a method with a specific name like 'ValueChanged' as an event callback to take care of the binding. As shown here.
这里你指的是 parent 和它的 child 之间的组件绑定。但是,上面带有@onchange 指令属性的代码片段与元素data-binding 相关...实际上它们基于相同的原理。 如果将 child 组件绑定到其 parent 的 MyValue 属性,如下所示:
以及 child 组件中的以下内容:
[Parameter]
Public string Value {get;set;}
[Parameter]
Public EventCallback<string> ValueChanged {get;set;}
然后编译器将创建执行绑定的代码 (two-way data-binding)。如果您查看该文件,您会注意到编译器生成的代码与用于元素数据绑定的代码几乎相同。
Are there any downsides to using the EventCallback.Factory.CreateBinder() method instead of the way outlined in the Microsoft documents?
我不这么认为...
When I googled the CreateBinder() method, I saw that it was marked for "internal use only". Does this mean that I'm not supposed to use it?
我们不应该做很多事情...
您应该通过模仿来学习...我在 github 的问题的评论中看到 Blazor 团队的人使用 CreateBinder...不是世界末日。由你决定...