JSFiddle - React, Tailwind, and code Playground

by marionettejs

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.2/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.2/backbone-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.radio/2.0.0-pre.2/backbone.radio.js"></script>
<script src="https://rawgit.com/marionettejs/backbone.marionette/next/lib/backbone.marionette.js"></script>

JavaScript

const { View } = Marionette; // import { View } from 'backbone.marionette';

const MyView = View.extend({

  initialize() {
    const hash = {
      'action:one': 'handleActionOne',
      'action:two': this.handleActionTwo
    };
    
    this.normalizedHash = this.normalizeMethods(hash);
    // or equivalent Mn.normalizeMethods(this, hash);
  },
  
  do(action) {
  	this.normalizedHash[action]();
  },
  
  handleActionOne() {
  	console.log('action:one was called');
  },
  
  handleActionTwo() {
  	console.log('action:two was called');
  }

});

const myView = new MyView();
myView.do('action:one');
myView.do('action:two');