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