JSFiddle - React, Tailwind, and code Playground

by rich_harris

HTML

<main></main>

<script id='template' type='text/ractive'>
    <button on-click='pop'>pop</button>
    <button on-click='reset()'>reset</button>
    
    <ul>
        {{#each items}}
            <li>{{this}}</li>
        {{/each}}
    </ul>
</script>

CSS

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

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

.error {
    color: #d00;
    font-family: monospace;
}

JavaScript

var Example = Ractive.extend({
    template: '#template',
    data: function () {
        return { items: [ 'a', 'b', 'c', 'd', 'e' ] };
    },
    oninit: function () {
        this.on( 'pop', function () {
            var items = this.get( 'items' );
            
            // this works...
            //items.pop();
            //items.splice( items.length - 1, 1 );
            //this.splice( 'items', items.length - 1, 1 );
            
            // these don't
            //items.splice( items.length - 1 );
            //this.splice( 'items', items.length - 1 );
        });
    }
});

var ractive = new Example({ el: 'main' });