Blazor two way 데이터 바인딩

Blazor two way 데이터 바인딩을 알아보기 위해서 사용자가 텍스트 상자에 입력할 때 입력한 총 문자 수를 표시하는 방법을 알아보겠습니다.

Blazor component class

구성 요소 클래스에서 Description 속성을 만듭니다 . 속성을 빈 문자열로 초기화하는 것이 중요합니다. 그렇지 않으면 런타임에 null 참조 예외가 발생합니다 .

public string Description { get; set; } = string.Empty;

Blazor component view

<div>
    <textarea @bind="Description" @bind:event="oninput" />
</div>
<div>
    Count : @Description.Length
</div>

코드 설명

  • bind 특성을 사용하여 <textarea> 요소를 Description 속성 에 바인딩합니다 .
  • bind 특성을 사용하면 양방향 데이터 바인딩을 얻을 수 있습니다. 즉,  <textarea> 요소는 Description 속성  의 값을 표시 하고  UI에서 <textarea> 요소 의 텍스트를 변경하면  구성 요소 클래스의 Description 속성이 자동으로 변경 즉, 업데이트 됩니다.
  • 기본적으로 바인드 속성은 변경 이벤트 에서 데이터를 바인딩합니다 . 요소가 포커스를 잃으면 변경 이벤트가 트리거됩니다.
  • 그러나 사용자가 <textarea> 요소 에 입력할 때 문자 수를 원합니다.
  • 이는 데이터 바인딩의 기본 이벤트를 변경하고자 함을 의미합니다. 바인딩 속성 의 이벤트 매개변수를 사용하여 이를 수행합니다 .
  • 이 예제에서는 기본 바인딩 이벤트를 onchange 에서 oninput 으로 변경했습니다 .
  • <textarea>  요소 에 입력하면 입력 이벤트가 시작되고  Description 속성이 새 값으로 업데이트됩니다.
  • 문자 수를 표시하기 위해 UI는 @Description.Length 로 바인딩시켜 표시합니다.


실행결과

답글 남기기