読者です 読者をやめる 読者になる 読者になる

【Backbonejs】listenToとstopListeningで対象のイベント監視を行う

backbone

BackboneのlistenToとstopListeningについて。
これらを使うと「特定のオブジェクト上で発生したイベントを監視する/監視をやめる」というのを実装することができる。

var listener = _.extend({}, Backbone.Events);
var target = _.extend({}, Backbone.Events);

listener.listenTo(target, 'event', function (event) {
    console.log('event happened');
});

target.trigger('event'); // event happened

listener.stopListening();
target.trigger('event'); // 何も表示されない

listenerにlisternToを使い、targetの「event」というイベントが発生したら特定の動作を行うようにしている。
第1引数が監視対象、第2引数が監視したいイベント、第3引数に実行する動作を指定する。
そして、stopListeningを実行すると呼び出したオブジェクトに紐付いている監視動作を全て削除する。

イベントの紐付きを解除することはガベージコレクションの関係上メモリリーク対策として重要だそうで。
適切にstopListeningで削除するようにしましょう。