KO 뷰 모델: 객체 리터럴과 함수 비교
Knockout JS에서 뷰 모델은 객체 리터럴이나 함수를 사용하여 선언될 수 있습니다. 두 가지 모두의 주요 목적은 관찰 가능한 속성과 계산된 함수를 정의하는 것이지만, 이들 간의 주요 차이점은 캡슐화, 유연성 및 코드 구성에 영향을 미칩니다.
객체 리터럴:
var viewModel = { firstname: ko.observable("Bob") };
객체 리터럴은 복잡한 논리나 계산된 기능이 없는 간단한 뷰 모델에 대해 간단하고 간결합니다. 그러나
함수:
var viewModel = function() { this.firstname = ko.observable("Bob"); };
함수는 다음과 같은 여러 가지 장점을 제공합니다.
모범 사례:
In 대부분의 경우 뷰 모델을 정의하는 함수를 사용하는 것이 좋습니다. 더 큰 캡슐화와 유연성을 제공하여 복잡한 뷰 모델을 더 쉽게 관리하고 이에 대한 적절한 액세스를 보장합니다.
개인 속성 및 메서드:
함수 기반 뷰 모델 자체 패턴을 사용하여 이 컨텍스트 내에서 개인 속성 및 메서드를 생성할 수 있습니다:
var ViewModel = function() { var self = this; self.privateProperty = ko.observable(); self.privateMethod = function() {}; };
바인드 함수:
또는 최신 브라우저와 Knockout JS는 특정 this 컨텍스트에 함수를 명시적으로 바인딩하는 바인드 기능을 제공합니다:
var ViewModel = function() { this.items = ko.observableArray(); this.removeItem = function(item) { this.items.remove(item); }.bind(this); };
바인드 함수를 사용하면 중첩된 범위 내에서 함수를 호출할 때에도 이것이 뷰 모델 인스턴스를 참조하도록 보장됩니다.
결론:
객체 리터럴과 함수를 모두 사용하여 녹아웃 뷰 모델을 정의할 수 있지만 일반적으로 함수는 캡슐화, 유연성 및 계산된 함수에서의 효율적인 처리를 위해 선호됩니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3