[javascript] Knockout.js에서의 데이터 바인딩 방법은?

Knockout.js는 자바스크립트 기반의 프론트엔드 프레임워크로, HTML 요소와 JavaScript 객체를 바인딩하여 동적인 UI를 구현할 수 있습니다. 데이터 바인딩은 Knockout.js의 핵심 기능 중 하나로, UI와 데이터 간의 실시간 동기화를 가능하게 해줍니다.

다음은 Knockout.js의 데이터 바인딩 방법에 대한 예시입니다.

  1. HTML 요소에 데이터 바인딩하기 Knockout.js에서 데이터 바인딩은 data-bind 속성을 사용하여 구현됩니다. 이 속성을 사용하여 HTML 요소에 데이터와 연결할 수 있습니다. 예를 들어, 아래의 코드는 text 바인딩을 사용하여 message 변수의 내용을 <span> 요소에 표시합니다.

    <span data-bind="text: message"></span>
    
  2. JavaScript 객체와 데이터 바인딩하기 Knockout.js에서는 ViewModel을 사용하여 JavaScript 객체와 UI 요소를 연결합니다. ViewModel은 데이터와 UI 간의 중개자 역할을 수행하며, 데이터의 변경에 따라 UI가 자동으로 업데이트됩니다.

    function AppViewModel() {
        this.message = ko.observable("Hello, Knockout.js!");
    }
       
    // ViewModel 인스턴스 생성
    var viewModel = new AppViewModel();
       
    // Knockout.js 바인딩 적용
    ko.applyBindings(viewModel);
    

    위의 코드에서 AppViewModel 함수는 message 변수를 ko.observable() 함수로 감싸 데이터 변경을 감지할 수 있는 observable 객체로 만듭니다. applyBindings 함수를 사용하여 ViewModel을 UI에 바인딩하면, message 변수의 변경이 있을 때마다 UI가 자동으로 업데이트됩니다.

이 외에도 Knockout.js는 다양한 데이터 바인딩 기능을 제공합니다. 예를 들어, 입력 필드의 값을 데이터와 바인딩하여 실시간 변경을 감지하거나, 버튼 클릭 이벤트와 데이터를 연결하여 동적인 기능을 구현할 수 있습니다.

더 자세한 내용은 Knockout.js 공식 문서를 참고하시기 바랍니다.