| 価値 | |
|---|---|
| ルール識別子 | ASP0006 |
| カテゴリ | Usage |
| 修正が破壊的であるか非破壊的であるか | Non-breaking |
原因
パラメーターとしてリテラルではないシーケンス番号を含む RenderTreeBuilder 内のメソッドに対する呼び出し。
ルールの説明
Blazorの UI 差分アルゴリズムは、どの要素が変更されたかを判断するためにシーケンス番号に依存します。 シーケンス番号を動的に計算したり、カウンターを使用したりすると、差分パフォーマンスが低下する可能性があります。 代わりに、要素のソース コード行にマップされるリテラル シーケンス番号を使用します。 たとえば、次のコードではエラーが発生します。
using Microsoft.AspNetCore.Components.Rendering;
var builder = new RenderTreeBuilder();
var seqNum = 1;
builder.OpenElement(seqNum, "div");
builder.CloseElement();
違反を修正する方法
この規則違反を修正するには、パラメーターとしてシーケンス番号を受け取る RenderTreeBuilder クラスのメソッドの呼び出しでリテラル シーケンス番号が使用されていることを確認します。
using Microsoft.AspNetCore.Components.Rendering;
var builder = new RenderTreeBuilder();
builder.OpenElement(0, "div");
builder.CloseElement();
警告を抑制するタイミング
このルールからの警告を抑制 しないでください 。 リテラル以外のシーケンス番号を使用すると、パフォーマンスが低下する可能性があります。
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
ASP.NET Core