gpt4 book ai didi

asp.net - ASP.Net Core Blazor 页面如何知道在异步数据获取方法返回后刷新其内容?

转载 作者:行者123 更新时间:2023-12-04 02:39:14 26 4
gpt4 key购买 nike

问题不在于如何让它工作,而是它能工作。我只是感兴趣,但无法找出后台发生的事情以使其正常工作。

主要示例是标准的 Blazor 服务器 Web 应用程序模板,它有一个“计数器”和一个“获取数据”组件。在 fetchdata 组件中,有一个被调用的 protected override async Task OnInitializedAsync(),组件会呈现自身。如果 OnInitializedAsync() 没有及时返回,渲染仍然发生,在示例中只是写出加载...然后当 OnInitializedAsync() 实际完成时,组件神奇地重新渲染,但是是什么导致了重新渲染?它是如何连接在一起的?

框架是否经常查看类的内存以确定是否需要重新渲染?是否只是在 OnInitializedAsync() 调用之前有一个页面呈现调用,在等待它之后有一个调用?

最佳答案

这都是基于异步编程...

protected override async Task OnInitializedAsync()
{
forecasts = await ForecastService.GetForecastAsync(DateTime.Now);
}

您提到的 OnInitializedAsync 方法有两个部分:同步和异步。当 OnInitializedAsync 方法开始执行时,将调用可等待的 GetForecastAsync 方法,将控制权交给调用代码,即 Blazor 运行时,它会立即开始呈现 UI。这是您的组件第一次被渲染。这也是为什么您必须在代码中检查 forecasts 变量不为空的原因。当 GetForecastAsync 返回并填充 forecasts 变量时,将执行更多代码(如果存在)到方法的末尾,之后您的组件再次重​​新呈现,这次 forecasts 不为空,因此呈现表。当然,这是一个简单的解释。您可以通过查看执行此操作的代码来逐步检查该过程:It all starts here .应该不难理解。没有魔法

希望这有助于...

关于asp.net - ASP.Net Core Blazor 页面如何知道在异步数据获取方法返回后刷新其内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60138147/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com