属性 值更改时 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.

上创建了一个更详细的示例