我不明白为什么有些组件参数参数名称以@
开头,而另一些则不以。
例如:
<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/