Blazor Server Data Binding

  • 4 minutes to read

One-way Binding 및 Two-way Binding 단계별 따라하기

Blazor Server에서 데이터 바인딩은 컴포넌트와 사용자 인터페이스 간의 데이터 흐름을 관리하는 핵심 기술입니다. 이 가이드에서는 Blazor의 One-way Binding과 Two-way Binding을 단계별로 알아보고, 이를 실습해보겠습니다.

1단계: 새로운 Blazor Server 프로젝트 만들기

  1. Visual Studio에서 새로운 Blazor Server 프로젝트를 생성합니다.
  2. 프로젝트 이름은 Hawaso로 설정하고, 프로젝트 유형을 Blazor Server App으로 선택하세요.

2단계: One-way Binding 이해하기

One-way Binding은 데이터가 모델에서 뷰로 흐르지만, 뷰에서 모델로는 흐르지 않는 방식입니다. 먼저, One-way Binding의 기본 개념을 이해하기 위해 간단한 예제를 만들어봅시다.

2.1. 데이터 모델 생성

Data 폴더에 Person.cs 파일을 생성하고 다음 코드를 추가합니다:

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

2.2. One-way Binding 컴포넌트 생성

Components/Demos/DataBindingDemo 폴더에 OneWayBinding.razor 파일을 추가하고 다음 코드를 작성합니다:

@page "/one-way-binding"
@code {
    private Person person = new Person { Name = "John Doe", Age = 30 };
}
<h3>One-way Binding Example</h3>
<p>Name: @person.Name</p>
<p>Age: @person.Age</p>

3단계: Two-way Binding 이해하기

Two-way Binding은 데이터가 모델과 뷰 사이에서 양방향으로 흐르는 방식입니다. 즉, 뷰에서 모델로의 데이터 변경이 가능하며, 그 반대도 가능합니다.

3.1. Two-way Binding 컴포넌트 생성

Components/Demos/DataBindingDemo 폴더에 TwoWayBinding.razor 파일을 추가하고 다음 코드를 작성합니다:

@page "/two-way-binding"
@code {
    private Person person = new Person { Name = "Jane Doe", Age = 25 };
}
<h3>Two-way Binding Example</h3>
<label>Name: <input @bind="person.Name" /></label>
<label>Age: <input @bind="person.Age" type="number" /></label>
<p>Updated Name: @person.Name</p>
<p>Updated Age: @person.Age</p>

4단계: bind-valuebind-value:event 사용하기

Blazor의 @bind 구문은 단순화된 형태의 양방향 바인딩입니다. 그러나 더 많은 제어가 필요할 때 bind-valuebind-value:event를 사용할 수 있습니다.

4.1. bind-valuebind-value:event의 기본 사용법

Components/Demos/DataBindingDemo 폴더에 BindValueExample.razor 파일을 추가하고 다음 코드를 작성합니다:

@page "/bind-value-example"
@code {
    private string currentValue = "Initial Value";
    private void OnInput(ChangeEventArgs e)
    {
        currentValue = e.Value.ToString();
    }
}
<h3>bind-value and bind-value:event Example</h3>
<input bind-value="currentValue" bind-value:event="oninput" />
<p>Current Value: @currentValue</p>

위 코드는 oninput 이벤트가 발생할 때마다 입력 값을 currentValue에 바인딩합니다.

5단계: 실습을 통해 데이터 바인딩 이해하기

5.1. One-way Binding 실습

OneWayBinding.razor 컴포넌트를 실행하여 다음과 같은 결과를 확인합니다:

Name: John Doe
Age: 30

이 예제에서는 모델의 데이터가 뷰로만 전달되며, 사용자가 이를 변경할 수 없습니다.

5.2. Two-way Binding 실습

TwoWayBinding.razor 컴포넌트를 실행하여 다음과 같은 결과를 확인합니다:

Name: [Jane Doe]
Age: [25]

Updated Name: Jane Doe
Updated Age: 25

이 예제에서는 입력 필드를 통해 사용자가 데이터를 변경할 수 있으며, 변경된 데이터는 모델에 반영됩니다.

5.3. bind-valuebind-value:event 실습

BindValueExample.razor 컴포넌트를 실행하여 다음과 같은 결과를 확인합니다:

Current Value: Initial Value

입력 필드에 값을 입력하면 currentValue가 즉시 업데이트됩니다.

마무리

Blazor Server에서 One-way Binding과 Two-way Binding은 데이터와 사용자 인터페이스 간의 상호작용을 효율적으로 관리하는 데 중요한 역할을 합니다. 이 가이드를 통해 기본적인 데이터 바인딩 개념을 이해하고, 다양한 실습을 통해 이를 실제 프로젝트에 적용해보세요.

VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com