Blazor生命周期中的SetParametersAsync和OnParametersSet方法有什么区别?

5

我创建了一个Blazor Web应用程序,在其中当子组件使用[parameter]从父组件接收值时,会触发OnparametersSet和SetparametersAsync方法。我想知道OnparametersSet和SetparametersAsync方法之间的区别。SetParametersAsync方法何时触发?OnParametersSet方法何时触发?


但是 OnParametersSet 也有一个异步版本,即 OnParametersSetAsync。在 SetParametersAsync 之后,OnParametersSet 将立即执行。那么 SetParametersAsync 和 OnParametersSet 方法之间有什么区别呢? - undefined
4
你处理 OnParametersSet 就像它是一个事件一样。它会在你的 [Parameter]s 被设置后触发。如果你想要自定义参数应该如何应用到组件中,你可以重新定义 SetParametersAsync。它会在框架在设置[Parameter]s之前调用,并 控制 它们被设置的方式。 - undefined
我从文档中理解到,SetParameterAsync 在属性设置之前被调用。而OnParametersSetAsync 在属性设置之后被调用。 - undefined
1
完整的生命周期在此处解释,应该有所帮助-https://learn.microsoft.com/en-us/aspnet/core/blazor/components/lifecycle?view=aspnetcore-5.0 - undefined
1个回答

1
当组件被重新渲染时,首先调用SetParametersAsync()。基本实现实际上设置了参数。 OnParametersSet()在每次组件被重新渲染时也会被调用,但是在SetParametersAsync()和OnInitialized{Async}()之后。
当您想要手动设置参数时,可以重写SetParametersAsync()。这可以是一种优化。但是要小心,在这里不要等待任何东西。
您可以重写OnParametersSet()来对新的参数值做出反应,比如获取新的数据。基本实现不做任何操作。
这张图片来自文档,但是它在“-仅首次渲染-”部分中放置了SetParametersAsync,这是错误的。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接