有人可以解释 Blazor 组件标签的各种语法吗

2024-04-20

在我的 .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(使用前将#替换为@)

有人可以解释 Blazor 组件标签的各种语法吗 的相关文章

随机推荐

  • 使网格正确对齐

    在我的应用程序中 我在列表框中显示有关用户的一些信息 我已经得到了我想要的大部分东西 但布局有点困扰我 它由网格制成 因此可以重新调整大小并适合纵向 横向模式 However I cannot get the layout to fix i
  • TensorFlow 队列关闭后可以重新打开吗?

    我想将项目入队 关闭队列以确保其他会话将所有剩余项目出队 然后在下一个纪元稍后重新打开它 这可能吗 q tf FIFOQueue close q q close reopen q with tf Session as sess sess r
  • Selenium Webdriver:处理 NoSuchElementException 的最佳实践

    经过大量搜索和阅读后 我仍然不清楚使用 Webdriver 处理失败断言的最佳方法 我本以为这是一个常见且核心的功能 我想做的就是 寻找一个元素 如果在场 告诉我 如果不在场 告诉我 我想向非技术受众展示结果 因此让它抛出带有完整堆栈跟踪的
  • 使用 CSS 和 JS 创建金字塔

    我有一个包装 div 和许多内容块 内容块可以是任意数量 div class wrapper div class content block Something goes here div div class content block S
  • 使用通用字典和/或使用 IDictionary 排序

    我有一个字典 其中的值是在运行时确定的 我可以将其创建为IDictionary并添加到它很好 但我无法排序 有没有办法将其创建为Dictionary这样我就可以访问OrderBy或者是否有另一种方法将其排序为IDictionary void
  • Symfony 控制器中操作的含义

    我是 Symfony 框架的新手 我在 Symfony 中启动简单项目 我在控制器中定义了一个函数 例如 public function sampleAction 这里的Action是什么意思 这只是一个约定 在其他框架中也是如此 例如 Z
  • iOS核心运动检测向前/向后倾斜

    我正在使用 iOS 核心运动框架来检测设备是否向前或向后倾斜 详情请看图片 https i stack imgur com 2Ojw5 jpg https i stack imgur com 2Ojw5 jpg 使用俯仰值 a 可以检测到这
  • 如何正确设置 hellem.js 来解决 CSP 问题?

    当我启动 Express 应用程序时 浏览器会出现以下错误 Refused to load the script http localhost 1337 main js because it violates the following C
  • Laravel 默认 .htaccess 文件将不起作用

    我终于为 Laravel 安装了所有内容 但我的主页上出现错误 500 它看起来是我的 htaccess 文件 如果我删除它 页面就可以工作 如果我把它放回去 又会出现500错误
  • 使用自定义 http 标头进行 Spring MVC 重定向

    我正在开发小型 spring mvc 应用程序 其中用户需要使用一些 http 标头重定向到外部应用程序 例如说 用户正在 url 上的应用程序 1 上http localhost 8080 app1 http localhost 8080
  • 长时间运行进程的超时和 Windows 服务 (Python)

    我有一个使用 python 创建的简单 Windows 服务 我的问题是 我不知道该服务需要多长时间才能完成 可能需要 15 秒 也可能需要 4 个多小时 具体取决于需要对数据执行的操作 4个多小时的情况很少见 但我也遇到过这种情况 以下是
  • UNIX:用冒号替换换行符,在 EOF 之前保留换行符

    我有一个格式为的文本文件 INPUT txt A
  • MVC 3 - 使用列表类型属性绑定到复杂类型

    我有一个以下视图模型 它将由我正在开发的搜索控件使用 public class SearchViewModel public SearchViewModel SearchLocation new SearchLocationViewMode
  • Qt 5 和 OS X Mavericks 问题

    我正在使用 Cmake 在 OS X 10 9 上构建 QT 项目 自 Mavericks 以来 OpenGL 标头的位置似乎发生了变化 文件夹 System Library Frameworks OpenGL framework Head
  • 修复地图投影后形状不连续的多边形对象

    该演示程序 旨在在 IPython 笔记本中运行 您需要matplotlib mpl toolkits basemap pyproj and shapely 应该在地球表面绘制越来越大的圆圈 只要圆不越过其中一根极点 它就能正常工作 如果发
  • 如何使用类初始化 STL 向量/列表而不调用复制构造函数

    我有一个 C 程序 它使用包含类实例的 std list 如果我打电话 例如myList push back MyClass variable 它经历创建临时变量的过程 然后立即将其复制到向量 然后删除临时变量 这远没有我想要的那么高效 而
  • css关键帧动画动态高度

    您好 我的子菜单有以下 css 它用于在页面加载时打开它们 它效果很好 但是我注意到 如果在我设置的动画的结束状态height auto 那么动画不会被执行 这对我来说是一个问题 因为在我的网站中我有许多子菜单 其中有 n 个子菜单 所以我
  • Sqlite 与 Blazor Wasm (.NET 6) -> System.DllNotFoundException: e_sqlite3

    根据 NET 6 中的新 Blazor WebAssembly 功能 NET 6 中的新 Blazor WebAssembly 功能 Sqlite 与 Blazor Wasm NET 6 gt System DllNotFoundExcep
  • jQuery 通过单击链接来排列 li 顺序

    需要通过点击向上移动或向下移动来改变li位置 div ul li Item1 a class moveUp Move Up a a class moveDown Move Down a li li Item2 a class moveUp
  • 有人可以解释 Blazor 组件标签的各种语法吗

    在我的 razor 文件中 我有这些标签 只是一个示例 它们有效 但我无法向自己解释各种语法背后的原因