Qual abordagem seria mais eficiente?
Eu tenho um Backbone.Collection, então crio um Backbone.View para renderizar esta coleção. O método de renderização CollectionView:
render: ->
container = document.createDocumentFragment()
@collection.each (item) ->
view = new ItemView(item)
container.appendChild view.el
view.render()
$(el).append container
Posso usar os eventos de duas formas.
1.- Configure o objeto de eventos em CollectionView, então preciso declarar a ação de selecionar um item em CollectionView e “resgatar” o modelo que selecionei.
CollectionView extends Backbone.View
events:
'click #itemView', 'onSelectItem'
onSelectItem: ->
##Get the model
##Show ItemDetailView
2.- Defina o objeto de eventos por itemView, para que o método select não precise recuperar o modelo.
ItemView extends Backbone.View
events:
'click #div','onSelect'
onSelect: ->
#Show ItemDetailView
Quais dessas opções são melhores?
Snippet JSperf http://jsperf.com/backbone-events-on-collectionview-or-per-itemview para testar isso
JSperf nos mostra que a abordagem ItemView tem um melhor desempenho e é mais “intuitiva” no uso de eventos de itens em cada ItemView.