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

CoC*_*oCo 7 parameters parameter-passing blazor

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

Hen*_*man 5

SetParametersAsync()当(重新)渲染组件时首先调用。基本实现实际上设置了参数。

OnParametersSet()每次(重新)渲染组件时也会调用它,但在 SetParametersAsync() 和 OnInitialized{Async}() 之后。

SetParametersAsync()当您想要手动设置参数时,您可以覆盖。这可以是一种优化。但要小心,不要在这里等待任何事情。

您可以覆盖OnParametersSet()以对新参数值做出反应。就像获取新数据一样。基本实现不执行任何操作。

这张图片来自文档,但将 SetParametersAsync 放在“-仅首次渲染-”部分中的位置是错误的:

在此输入图像描述