为什么某些 blazor 组件属性以"at" (@) 符号开头?



我不明白为什么有些组件参数参数名称以@开头,而另一些则不以。

例如:

<MyCustomComponent MyCustomParameter="somevalue" />

<MyCustomComponent @ref="@MyComponent" />

感谢

在您的第一个示例中,您没有使用@符号,这意味着您不希望transcompiler进行干预。所以这几乎和纯HTML/JS代码一样。

由于您已经在使用blazer中制造的自定义组件,因此transcompiler知道它必须解析组件内部的自定义参数,因此不需要有任何@符号。

在第二个例子中,您使用的是西装专用功能,所以您使用的@,换句话说,这就是它的设计方式。始终将@ref视为特殊的指令。在这种情况下,blazer transcompiler会在你不知道的情况下进行干预并将其代码放在中间。

对于有和没有@的值分配,当你进行硬编码或进行html/JS引用时,你不需要放@,如果你正在分配一个blazer值,你需要放@

注意:目前,与Angular等其他框架不同,Blazor不允许开发人员创建自己的指令。

请参阅下文。https://blazor-university.com/javascript-interop/calling-javascript-from-dotnet/passing-html-element-references/

最新更新