组件数据绑定

Blazor提供了数据绑定语法用于绑定组件状态变量和事件,这篇笔记我们学习Blazor数据绑定相关的知识。

单向数据绑定

Blazor组件中,我们可以绑定组件状态变量到模板内,对于输入型的组件如<input>,我们还可以实现双向绑定。

下面例子将text变量的值绑定到了<input>value属性。

@rendermode InteractiveServer

<input value="@text" />

@code {
    private string text = "hello";
}

双向数据绑定

下面例子对<input>text变量进行了双向绑定,此时输入框的内容改变时,<div>@text</div>的内容也会随之改变。

@rendermode InteractiveServer

<input @bind="text" />
<div>@text</div>

@code {
    private string? text;
}

事件绑定

Blazor对各种HTML元素提供了事件绑定语法,例如对于按钮我们可以使用@onclick绑定按钮点击事件,下面是一个例子。

@rendermode InteractiveServer

<button @onclick="HandleButtonClick">Click me</button>

@code {
    private void HandleButtonClick()
    {
        Console.WriteLine("Button clicked");
    }
}

关于@符号的说明

数据绑定中,@符号的用法可能有点迷惑性,value="@text"@bind="text"如何区分@该放在那里?实际上是这样理解的,value="@text"value是一个HTML属性(HTML和Razor语法都没有@value这种东西),而@text引用一个变量,将其传递给HTML的value属性。至于@bind="text"中,@bind是Blazor提供的用于双向绑定的语法,它接收一个状态变量名,因此我们将text传递给了它,而不能写作@text

作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。
Copyright © 2017-2024 Gacfox All Rights Reserved.
Build with NextJS | Sitemap