当我们有如下 HTML 代码时。
<h1>@Title</h1>
和 C# 如下所示
public string Title { get; set; }
认为我已经执行了如下代码
Title = "New title updated in the runtime";
然后我们看到 View 已与新值一起变化。
渲染器如何知道属性值发生了变化。
是否有类似 INotifyProperyChange
的实现。 HTML 如何知道现在是更新内容的时间。
我只想知道 Blazor 框架的内部结构是如何构建的。
最佳答案
当用户交互发生时,Blazor 会自动检查绑定(bind)属性的更改(例如,单击按钮、输入中的文本更改)。在这种情况下,Blazor 的 JavaScript 代码会触发 C#(=Webassembly)中的变更检测。因此,如果您想在用户交互后刷新 UI,则无需执行任何操作。
但是,有些情况下您想要刷新 UI,尽管没有发生用户交互(例如计时器)。在这种情况下,您必须调用 StateHasChanged
。我在 learn-blazor.com 上创建了一个更详细的示例.
关于c# - Blazor Framework 如何在属性值更改时收到通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48920530/