JSFiddle - React, Tailwind, and code Playground

by rich_harris

HTML

<script src="http://cdn.ractivejs.org/edge/ractive.js"></script>
<main></main>

<script id='template' type='text/ractive'>
    <h1>Hello, {{name}}!</h1>
    <p>We're using Ractive.js version {{v}}.</p>
</script>

CSS

body {
    font-family: 'Helvetica Neue', arial, sans-serif;
    font-weight: 200;
    color: #353535;
}

h1, h2, h3, h4, h5, h6 {
    font-weight: 200;
}

JavaScript

var on = Ractive.prototype.on;

// With this method override, the console will show
//   one
//   two
//
// Without it (comment it out), it will show
//   one
//   one
//   two
Ractive.prototype.on = function ( eventName, handler ) {
    var map;
    
    if ( typeof eventName === 'object' ) {
        map = eventName;
        for ( eventName in map ) {
            this.off( eventName );
        }
    }
    
    else if ( typeof eventName === 'string' ) {
        this.off( eventName );
    }
    
    on.call( this, eventName, handler );
};

var ractive = new Ractive({
    el: 'main',
    template: '#template',
    data: { name: 'world', v: Ractive.VERSION }
});

ractive.on( 'foo', logOne );
ractive.fire( 'foo' );

ractive.on( 'foo', logTwo );
ractive.fire( 'foo' );

function logOne () { console.log( 'one' ); }
function logTwo () { console.log( 'two' ); }