blazor组件中的OnClick和@onclick有什么区别

问题描述

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

首先这不是这个问题: Different method calls in 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相同……但是吗?

这仅仅是某种程度的过载吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)