如何替换 Marionette 上的 RegionManager 实例 3
How can I replace RegionManager instances on Marionette 3
我目前正在将项目从 Marionette v2 升级到 v3,但似乎区域管理器的所有功能都已添加到视图 class 中。
我的项目有几个
Marionette.RegionManager.extend({
regions: {
...
}
})
我想知道是否有一种方法可以将这样的 v2 代码直接转换为 v3 代码。
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();
我目前正在将项目从 Marionette v2 升级到 v3,但似乎区域管理器的所有功能都已添加到视图 class 中。
我的项目有几个
Marionette.RegionManager.extend({
regions: {
...
}
})
我想知道是否有一种方法可以将这样的 v2 代码直接转换为 v3 代码。
RegionManager
Marionette.RegionManager
was removed. This publicly exposed class was mostly used as a common class used betweenLayoutView
andApplication
.
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();