如何替换 Marionette 上的 RegionManager 实例 3

How can I replace RegionManager instances on Marionette 3

我目前正在将项目从 Marionette v2 升级到 v3,但似乎区域管理器的所有功能都已添加到视图 class 中。

我的项目有几个

Marionette.RegionManager.extend({
  regions: {
    ...
  }
})

我想知道是否有一种方法可以将这样的 v2 代码直接转换为 v3 代码。

来自3.0 release blog

RegionManager

Marionette.RegionManager was removed. This publicly exposed class was mostly used as a common class used between LayoutView and Application.

upgrade guide 似乎根本没有提到 RegionManager

如果您正在寻找 codemod 或我不知道的东西。但是有这个 marionette-3-patch 用于向后兼容 marionette 2,您可以使用它进行升级并逐步手动重写 2.x 语法或创建工具。

我发现region manager可以被view代替,充当所有其他view的root。按照应用程序文档

中的说明将其添加到应用程序中就足够了
var Mn = require('backbone.marionette');
var RootView = require('./views/root');


var App = Mn.Application.extend({
  region: '#root-element',

  onStart: function() {
    this.showView(new RootView()); // Which is your old region manager
  }
});

var myApp = new App();
myApp.start();