首页 > 解决方案 > blazor 组件中的 OnClick 和 @onclick 有什么区别

问题描述

我发现了一些奇怪的东西,我想知道是否有人知道答案:

首先这不是这个问题: Blazor 中的不同方法调用 那个问题是指 HTML 元素。我说的是组件。

所以我有自己的名为 MyButton 的组件;并指定了 OnClick 参数:

MyButton.razor

<button @onclick="OnClick">Do Something</button>

@code {
    [Parameter]
    public EventCallback<MouseEventArgs> OnClick { get; set; }
}

当我使用 MyButton 时,我可以使用任何一个名称,即

<MyButton OnClick="SomeMethod" />

但这也有效:

<MyButton @onclick="SomeMethod" />

当我从 MyButton.razor 中删除整个 @code 块时,它们都给了我完全相同的错误消息:

<Mybutton OnClick="MyMethod" />

“MyButton”类型的对象没有与名称“OnClick”匹配的属性。

<Mybutton @onclick="MyMethod" />

“MyButton”类型的对象没有与名称“onclick”匹配的属性。

唯一的区别在于大写。“OnClick”与“onclick”......这是合乎逻辑的。所以看起来@onclick 与 OnClick 相同......但它们是吗?

这仅仅是某种超载吗?

标签: onclickblazor

解决方案


推荐阅读