Blog

BackboneJS 서브 뷰 사용하기

BackboneJS는 MV* 패턴을 사용하는 경량 프레임워크로 메인뷰에서 서브뷰를 사용할 수 있다. 서브뷰를 사용하면 경우에 따라  유지보수하기 좋은 좀 더 모듈화된 코드를 만들 수 있을 것 같다.

서브뷰 사용을 위해 우선 Backbone.View를 확장하여 메인뷰와 서브뷰를 생성하고 메인 뷰에서 서브뷰에 사용할 모델을 꺼내어 해당 모델이 사용될 서브뷰를 이터레이션으로 돌리면된다.
이터레이션은 underscore의 _.each를 사용하는데(obj, iteratee, context) 세개의 파라미터로 obj로 모델 데이터를, iteratee로 콜백함수를, context는 그대로 컨텍스트를 넣어주고 콜백함수 내에서 서브뷰의 인스턴스를 생성하여 메인뷰에 append 시키면 된다.
중요한 점은 서브뷰에서 사용될 모델을 서브뷰 인스턴스 생성시 생성자에 파라미터로 전달하고 서브뷰의 render메소드에서 return this; 컨텍스트를 리턴해 주어야 backbone.view가 가지고있는 el에 참조된 엘리멘트를 사용할 수 있다.

*서브뷰 기능만을 구현하기 위해 나머지 코드들은 추가하지 않았습니다.

Backbone.Model

테스트를 위한 임의로 모델을 생성.

Backbone.View(main view)

Backbone.View(sub view)

실행

실행해보면 아래와 같이 서브뷰에서 랜더된 li가 메인뷰에 append되어 노출되고 있다.

스크린샷 2016-04-04 오전 10.27.39