marionette 中的 ItemView 和 View 有什么区别?

What's differences between ItemView and View in marionette?

Version 2.x had many different kinds of views: View, ItemView, LayoutView, CollectionView, CompositeView.

In version 3 ItemView, and LayoutView were ‘merged’ into View, and CompositeView was deprecated for removal in v4. Now we have only View and CollectionView.

ItemView 和 marionette2 中的 View 有什么区别?

如果我在 Marionette 3 中的代码中将所有 ItemView 替换为 View ?我将如何遇到问题?

What's differences between ItemView and View in marionette 2 ?


好的,在旧版本 Marionette 中,我们通过使用特定的 class 名称创建了选择的实例视图。
所以。如果你想创建 itemView 你应该使用 ItemView class,或者如果你想要 layout view 使用 LayoutView class 的实例。每个视图class继承自基本视图class,所以每个视图都有共同的属性,但不是全部。

因此ItemView是View的特例。在 M2 中,不建议直接使用 View class

创建视图的实例

在 Marionette 3 你不必指明具体的 class 因为 查看 class 是一个更详细的。根据定义的属性,您的视图可以是 itemView 或 layoutView

var view = new Marionette.View({ template: "#some-template"});

//So we can say that is a normal itemView
var layoutView = new Marionette.View({ 
  template: "#some-template",
  regions: {
    menu: "#menu",
    content: "#content"
  });

//So we can say that now is a layoutView, because we defined a regions.

当然CollectionView有自己的class和以前的版本一样。

If I replace all my ItemView to View in my code in Marionette 3 ? How will I get problems ?

不,在这种情况下你应该没有任何问题。