가치 | |
---|---|
규칙 아이디 | 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();
경고를 표시하지 않는 경우
이 규칙의 경고를 숨기지 마세요. 리터럴이 아닌 시퀀스 번호를 사용하면 성능이 저하될 수 있습니다.
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
ASP.NET Core