Marionette 控制器最佳实践
Marionette Controller Best Practice
根据 v2.4.1 Marionette documentation 控制器将被弃用:
Warning: deprecated. The Controller object is deprecated. Instead of using the Controller
class with the AppRouter, you should specify your callbacks on a plain Javascript object.
我很困惑现在最好的做法是什么,因为它们已经被弃用了?这是否意味着 AppRouter 也被弃用了?如果是这样,当前用于开发大型 Marionette 应用程序的模式是什么?
您可能只使用 Marionette.Object。和Controller基本一样
要在 AppRouter 中使用普通 JavaScript 对象,您可以这样做:
var MyController = Marionette.Object.extend({/*...*/});
var AnotherController = Marionette.Object.extend({/*...*/});
var myController = new MyController();
var anotherController = new AnotherController();
var plainJsObject = {
doStuff: myController.doStuff,
doSomethingDifferent: anotherController.doSomethingDifferent
};
var router = Marionette.AppRouter.extend({
controller: plainJsObject
});
根据 v2.4.1 Marionette documentation 控制器将被弃用:
Warning: deprecated. The Controller object is deprecated. Instead of using the Controller class with the AppRouter, you should specify your callbacks on a plain Javascript object.
我很困惑现在最好的做法是什么,因为它们已经被弃用了?这是否意味着 AppRouter 也被弃用了?如果是这样,当前用于开发大型 Marionette 应用程序的模式是什么?
您可能只使用 Marionette.Object。和Controller基本一样
要在 AppRouter 中使用普通 JavaScript 对象,您可以这样做:
var MyController = Marionette.Object.extend({/*...*/});
var AnotherController = Marionette.Object.extend({/*...*/});
var myController = new MyController();
var anotherController = new AnotherController();
var plainJsObject = {
doStuff: myController.doStuff,
doSomethingDifferent: anotherController.doSomethingDifferent
};
var router = Marionette.AppRouter.extend({
controller: plainJsObject
});