는 느슨하게 MVVM 패턴의 다양한 구성 요소Backbone + Stickit을 사용할 때 뷰 모델 객체가 Backbone.Model을 확장해야합니까? 이러한 데이터가 서버로 전송하고 서버로 다시 전송 나타냄
Model
있다했다. UI의 표시와 관련된 상태가 없습니다.ViewModel
: 이것은 하나 또는 여러 모델로 구성됩니다. 여기에는 UI 조작을위한 상태가 포함됩니다 (단추 사용 또는 사용 불가능). UI 조작을위한 모든 로직이 여기에 저장됩니다. 이 레이어는 UI 프레임 워크 (jQuery 호출이 없음)에 대한 종속성이 없습니다.View
: UI 프레임 워크/기본 UI 컨트롤과 밀접한 관련이 있습니다. 하나의 뷰는 하나의 뷰 모델 만 관찰합니다. 보기 모델은 하나 이상의보기로 관찰 할 수 있습니다. 뷰는 뷰 모델과의 두 바인딩을 담당합니다.presenter/coordinator
: 기존 구현의 일부는 아니지만 뷰 모델이 부재 한 경우 너무 많은 책임이 있습니다. 이 사람은 글로벌 이벤트 수집기 등에서 이벤트를 듣고 AJAX 호출 (get/post)을 조정하는 데 도움이됩니다.
독립 실행 형 백본에는보기 모델 및 데이터 바인딩 개념이 없습니다. 이 시나리오에서 서버가 반환 한 데이터는 Backbone.Model
개체로 모델링 할 수 있습니다. 바인딩은 수동으로 수행되며 뷰 모델 동기화에는 POJO를 사용할 수 있습니다.
데이터 바인딩을 위해 Stickit을 사용하려는 경우보기 모델이 Backbone.Model
의 인스턴스 여야합니다. 주로 바인딩이 Backbone.View
컨텍스트 내에서 작동하고 Backbone.View
이 Backbone.Model
개체가 뷰의 속성으로 존재할 것으로 예상하기 때문입니다. 또한 Backbone.Model은 변경 이벤트를 발생시키고 그렇지 않은 이벤트는 발생시킵니다. 나는 POJO를 관찰하는 것이 어려울 것이라고 생각한다. 다시 말하지만, Stickit 문서를 읽는 것이 내 이해입니다. 내가 틀렸다면 나를 바로 잡아주세요.
Backbone.Model
이 save
처럼, 뷰 모델의 관점에서 이해가되지 않습니다 거기에 다른 방법을 가지고, fetch
등 내가 다른 MVVM 라이브러리, Knockback
에 독서했다. Backbone.Model
을 Knockout.js
뷰 모델로 변환 할 수 있습니다. Backbone.Model
을 완전히 수행하는 대신, 메소드를 얻거나 설정 한 POJO를 받아들이고 속성이 변경되면 변경 이벤트를 발생시킬 수 있습니다.
Stickit은 메소드를 가져 오거나 설정하고 변경 이벤트를 발생시킨 POJO를 전달할 수있는 비슷한 계약을 가지고 있습니까? 권장 용도는 무엇입니까?