JSFiddle - React, Tailwind, and code Playground

HTML

<script src="http://underscorejs.org/underscore.js"></script>
<script src="http://backbonejs.org/backbone.js"></script>

JavaScript

// -- BASE VIEW ------------------

var BaseView = Backbone.View.extend({
    constructor : function (options) {
        Backbone.View.prototype.constructor.apply(this, arguments);
        this._eventAggregator = options && options.eventAggregator || this;
        this._parseTriggers();
    },
    _parseTriggers :  function () {
        _.each(this.triggers || {}, function (fn, event) {
            var handler = this[fn];
            if (_.isFunction(handler)) {
                this.listenTo(this._eventAggregator, event, handler);
            }
        },
        this);
    }
});

// -- TEST ------------------

var View = BaseView.extend({
    triggers : {
        'hello' : 'helloHandler',
        'bye' : 'byeHandler'
    },
    helloHandler :  function (name) {
        console.log('hello, ' + name);
    },
    byeHandler :  function (name) {
        console.log('bye, ' + name);
    }
});

var view1 = new View();
view1.trigger('hello', 'dude 1'); // -> hello, dude 1
view1.trigger('bye', 'dude 1'); // -> bye, dude 1 

var vent = _.extend({}, Backbone.Events);
var view2 = new View({eventAggregator:vent});
vent.trigger('hello', 'dude 2'); // -> hello, dude 2
vent.trigger('bye', 'dude 2'); // -> bye, dude 2