В моем приложении у меня есть CollectionView с ItemView рядом с ним (они оба видны одновременно). При щелчке элемента в списке ItemView отображает его сведения.
Простое решение — запустить
bigLayout.itemDetailsRegion.show(new ItemDetailsView({
model: modelOfClickedItem
});
Но это делает экземпляр ItemView, который ранее отображался, закрытым и сборщиком мусора, в то время как новый экземпляр того же класса создается и отображается в том же месте. Для меня и моей команды это пахнет плохой практикой (удаление и повторное создание представления кажется нам бесполезными накладными расходами), но правы ли мы?
На данный момент мы добавили метод changeModel(model) в класс ItemView, который
- отвязывает события от предыдущей модели
- присваивает новую модель представлению
- перерисовывает вид
- привязывает новые события к модели
Но мы не очень довольны (во многих случаях переключение модели является более сложным, и это решение не очень масштабируемо).
Есть ли что-то, что мы могли бы назвать «лучшей практикой» для такого рода потребностей? Является ли стандартный способ (как описано выше) хорошей практикой?