Without a doubt, the most complex part of this chapter's application is the router, and with more advanced applications, this will often be the case. Due to this, Marionette's recommended pattern is to split the functionality of the Backbone router into two parts. The first part is still called the router; its job is to decide what should be done based on the current route. Then, there's the controller that actually performs the action decided upon by the router. Marionette has the Marionette.AppRouter
class for the routing functionality. Interestingly, Marionette provides no framework for the controller. All that's required is a basic object with the right methods. We will create a constructor function and place all our methods on the prototype. So, let's create router.js
within public
and get started.
As Marionette recommends shifting most of the traditional Backbone router's work to the controller, the router itself is very minimal. Here's how it starts:
App.module(...