Blazor 初始化对象的最佳实践

三月PT

给定一个显示对象详细信息的 Razor 组件,从 DB 获取该对象的最佳实践是什么?

我的情况我总是使用 OnInitializedAsync 设置对象,如下所示:

    private ProductModel productModel;        >               

    protected override async Task OnInitializedAsync()
    {
        productModel = await _productsService.GetObjectDetails(Id);                
    }

我想知道我是否在性能方面做得最好,还是有更好的方法,例如使用 OnParametersSet ...

谢谢

首先,OnInitialized{Async}方法对方法对之前被调用OnParametersSet{Async}这些对之间的主要区别在于,第一个仅在创建和初始化组件时调用一次。

OnParametersSet{Async} 然而,方法对被称为:

OnInitialized或 中初始化组件后OnInitializedAsync并且在每次父组件的后续重新渲染时,当原始参数发生更改时,例如 ID(定义为组件参数属性),以及您的组件中是否还定义了复杂类型的参数。

你的做法是正确的。但是如果你在OnParametersSet{Async}方法对中这样做,它不会有任何区别......它不会产生任何开销。

好的模式是使用OnInitialized{Async}方法对,如果说,您想_productsService.GetObjectDetails调用从 OnInitialized{Async}调用的相同方法 ( ),但参数值已更改,您可以从 调用它OnParametersSet{Async} method pair,具体取决于您的总体设计。

你是否因为SetParametersAsync方法而感到困惑这与 完全不同OnParametersSet{Async} method pair,尽管相关。

我了解OnParametersSet主要是在父组件传递参数时使用,SetParametersAsync我不知道。。

SetParametersAsync方法并不真正被视为生命周期方法。SetParametersAsyncOnInitialized{Async}方法对之前执行您可以检查此代码以查看发生了什么...该SetParametersAsync方法的作用是设置渲染树中组件的父级或路由参数提供的参数。如果需要,您可以覆盖它,但通常不会,这取决于您做什么。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章