パフォーマンスに関する限り、パフォーマンスの一部を更新するだけで十分かどうかは、ビューがどれほど複雑で、どれだけ変化しているかに依存する可能性があります。
つまり、右側の新しいアイテムに対して1つのビューを作成し、そのモデルを交換するtrigger
か、ビューのメソッドをchange event
呼び出すことができます。refresh
何かのようなもの
var NewsItemView = BackBone.View.extend({
initialize: function() {
this.model.bind('change', this.refresh, this);
},
refresh: function () {
this.$el.find('#partIWantToUpdate').html(this.model.get('someField'));
}
})
そして、新しいビューを作成するのではなく、モデルを交換するだけです
newItemView.model = newsModel;
newsModel.trigger('change');
または、changeイベントへのバインドを忘れて、メソッドを直接呼び出すだけです。
newItemView.refresh();
もう1つのオプションは、ニュースアイテムごとにビューを作成し、そのビューをコレクションのビューにキャッシュして、ニュースアイテムがタップされるたびに(削除するのではなく、バインドされたイベントも削除することがdetach
重要です)、現在のビューを(実際には現在のビューの)そして新しく選択されたモデルのビューを添付します。detach
remove
DOM
el