티스토리 뷰

저번 두 포스팅에서 사용 하던 이벤트 전달 방식을 정리 해보면 두 방식 모두 부모 View를 통해서 이벤트를 전달 하였다.

Backbone event의 관련된 설명을 찾아보면, Backbone 객체는 Events를 내포되어 있다는 것을 알 수 있다. "The Backbone object itself mixes in Events"

이를 이용해 전역 이벤트를 전달 하고 받을 수 있게 할 수 있다.


- 전역적으로 선언되어있는 Backbone객체를 이용 하여 메시지를 수신 받고 전달 한다.


자바스크립트 구현은 아래와 같다:

var LayoutView = Backbone.View.extend({
    initialize: function() {
        this.mainView = new MainView();
        this.sidebarView = new SidebarView();
    }
});

var SidebarView = Backbone.View.extend({
    events: {
        'click': 'onClick'
    },
    initialize: function(options) {
    },
    onClick: function() {
        Backbone.trigger('mainViewRender')
    }
});

var MainView = Backbone.View.extend({
    initialize: function(options) {
        this.listenTo(Backbone, 'mainViewRender', this.render);
    },
    render: function() {
        console.log('클릭이 발생 했어요!');
    }
});

Backbone 객체를 이용해 이벤트를 전달하기 때문에 굉장히 제한적으로 사용 하는 것이 좋다.


위 방식은 전역적으로 Event를 전달해야 하는 경우 쉽게 메시지를 전달 하고 받을 수 있다.

예를 들면 공통으로 수신받는 "공지 메시지"나 "Websocket"을 이용해 메시지를 수신 받을때는 더할 나위 없이 좋게 활용 할 수 있다.


결론)

총 3가지 이벤트 핸들링 방식에 대해 알아보았다. 1번 방식를 이용 하여 프로젝트를 진행 하다보니 계속 이벤트를 전달 하기 위해서 View를 찾게 된다. 자식 View에서 매번 부모 View를 할당 하다보니 복잡도가 올라 간다.


현재는 2번방식을 통해서 이벤트를 영역으로 구역을 생성 하고 이벤트를 전달 하는 방식을 취하고 있다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함