ASP0006:不要使用非文本序列号
值 | |
---|---|
规则 ID | ASP0006 |
类别 | 使用情况 |
修复是中断修复还是非中断修复 | 非中断 |
原因
对 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();
何时禁止显示警告
不禁止显示此规则发出的警告。 使用非文本序列号可能会导致性能降低。