给定一个显示对象详细信息的 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
方法并不真正被视为生命周期方法。SetParametersAsync
在OnInitialized{Async}
方法对之前执行。您可以检查此代码以查看发生了什么...该SetParametersAsync
方法的作用是设置渲染树中组件的父级或路由参数提供的参数。如果需要,您可以覆盖它,但通常不会,这取决于您做什么。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句