在我们正在开发的应用程序中,我们有一个 CollectionView,它的每个 ItemView 都包含一个指向 item-details 页面的链接。此外,每个 ItemView 都包含一个复选框,因为可以在 CollectionView 中选择项目以对其执行批量操作。
当切换到 ItemDetails View 时,我们希望 保持 CollectionView 的状态,理想情况下不必重新绘制它(有点像从收件箱切换到邮件再返回时的 GMail)。我们的解决方案是 在两个不同的区域渲染两个 View ,并在从一个切换到另一个 时隐藏一个。
我对这个解决方案的困惑是
有没有更好的解决方案来实现这个目标?
将状态存储在某处,关闭 CollectionView 并稍后重新绘制它是另一种可能的解决方案,但这是否意味着大量的计算开销? (我们非常害怕重绘 View )。
最佳答案
Marionette 允许在不关闭已经渲染的 View 的情况下显示区域中的 View 。您只需将 {preventClose: true}
传递给区域的 show()
方法。您仍然需要维护对集合 View 的引用,以便您以后可以重新显示它或自己关闭它。
https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.region.md#showing-a-view
关于javascript - 缓存 Marionette View 的最佳实践,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23061423/