在我的 .razor 文件中,我有这些标签(只是一个示例)。它们有效,但我无法向自己解释各种语法背后的原因
<HxButton Text=@StartButtonText OnClick="StartClick" Color="ThemeColor.Primary"/>
<Listener @ref=_listener/>
<button @onclick=Show>Modal</button>
具体来说
- 为什么有些标签的名称开头有 @(例如 ref 和 onclick),而其他标签则没有。
- 为什么主题 Color.Primary 包含在引号中,而不是“开始按钮文本”
- 为什么 StartButtonText 有一个 @ 符号
- 为什么按钮的 @onclick 具有纯文本(而不是 @Show 或“Show”)
我讨厌每次都随机循环语法来找到有效的语法。
注意,HxButton来自HAVIT组件库,Listener是我构建在HAVIT HxModal之上的组件
Blazor 是 C# 和 HTML 两种语言的交汇点。此外,在某些情况下,两种语言都允许多种语法变体。
- 为什么有些标签的名称开头有 @(例如 ref 和 onclick),而其他标签则没有。
The 指令属性 https://learn.microsoft.com/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-6.0#directive-attributes (@ref
, @key
, @onclick
等)需要一个@
前面表明它们是C#。这是必要的,因为这些属性通常具有 HTML/JS 等效项。它们以小写字母开头。
当组件定义参数时,您不需要@
但这是允许的。 Blazor 的第一个版本需要它。
其他一切都传递给 HTML/JS。
- 为什么主题 Color.Primary 包含在引号中,而不是“开始按钮文本”
StartButtonText 在引号中会更好,但这在 HTML 中是一种宽大处理。Text="@StartButtonText"
被推荐。
- 为什么 StartButtonText 有一个 @ 符号
这是 Blazor(Razor 语法)的主要“开关”。如果没有@
您将在屏幕上看到字符串“StartButtonText”。随着@
它成为 C# 变量的名称。这是一样的@
as in @foreach() {...}
.
当需要委托(方法)时@
是允许的,但不是必需的。
- 为什么按钮的 @onclick 具有纯文本(而不是 @Show 或“Show”)
此时已经很清楚了Show
必须是 C# 方法。如果不是的话,你会得到一个错误。没有必要@
切换语言。但 C# 允许@
在任何名字前面。这是一个转义规则,允许您使用保留字,例如int @int = 3;
但也允许使用无保留字。使用Show
or "Show"
这又是 HTML 的宽大处理。
@onclick="Show"
被推荐。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)