在开发 Blazor 服务器应用时,是否有任何经验法则可供初学者了解何时使用哪些生命周期方法。
OnInitialized()
vsOnInitializedAsync()
OnParametersSet()
vsOnParametersSetAsync()
OnAfterRender()
vsOnAfterRenderAsync()
OnInitialized() vs OnInitializedAsync()
更喜欢简单的 OnInitialized() 来设置没有异步的数据,例如message="hello";
.
一旦您必须调用并等待异步方法,例如在 HttpClient 上,请切换到 OnInitializedAsync()。
更多经验法则:
- 不要使用 .结果或 .异步方法上的 Wait()
- 不要在没有等待异步方法的情况下启动它们
- 除非在极少数情况下,否则不要使用
async void
。
当您弄错时,会出现错误(无法等待)或警告:
CS4032 "await"运算符只能在异步方法中使用。
很明显,您应该使用*异步方法。但不要通过使用async void
或.Result
来"修复"它。
CS1998 此异步方法缺少"等待"运算符,并且将...
表示您不应该使用 *Async 方法。
CS4014 因为没有等待此呼叫,所以...
意味着你没有在等待你应该等待的东西。