属性 值更改时 Blazor Framework 如何收到通知
How Blazor Framework get notifed when the property value gets changed
当我们有如下 HTML 代码时。
<h1>@Title</h1>
和 C# 如下所示
public string Title { get; set; }
我想我已经执行了如下代码
Title = "New title updated in the runtime";
然后我们看到视图已经用新值改变了。
渲染器如何知道 属性 值发生了变化。
是否实现了 INotifyProperyChange
之类的东西。 HTML 如何知道现在是更新内容的时间。
我只想知道 Blazor Framework 的内部结构是如何构建的。
Blazor 会在发生用户交互时自动检查绑定属性的更改(例如,单击按钮、输入中的文本更改)。在这种情况下,Blazor 的 JavaScript 代码会触发 C# (=Webassembly) 中的更改检测。因此,如果您想在用户交互后刷新 UI,则无需执行任何操作。
但是,有些情况下您想要刷新 UI 尽管没有发生用户交互(例如计时器)。在这种情况下,您必须调用 StateHasChanged
。我在 learn-blazor.com.
上创建了一个更详细的示例
当我们有如下 HTML 代码时。
<h1>@Title</h1>
和 C# 如下所示
public string Title { get; set; }
我想我已经执行了如下代码
Title = "New title updated in the runtime";
然后我们看到视图已经用新值改变了。
渲染器如何知道 属性 值发生了变化。
是否实现了 INotifyProperyChange
之类的东西。 HTML 如何知道现在是更新内容的时间。
我只想知道 Blazor Framework 的内部结构是如何构建的。
Blazor 会在发生用户交互时自动检查绑定属性的更改(例如,单击按钮、输入中的文本更改)。在这种情况下,Blazor 的 JavaScript 代码会触发 C# (=Webassembly) 中的更改检测。因此,如果您想在用户交互后刷新 UI,则无需执行任何操作。
但是,有些情况下您想要刷新 UI 尽管没有发生用户交互(例如计时器)。在这种情况下,您必须调用 StateHasChanged
。我在 learn-blazor.com.