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'>
    {{#each stuff}}
        <widget msg='{{this}}'/>
    {{/each}}
</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

Ractive.components.widget = Ractive.extend({
    template: '<p>message: {{msg}}</p>'
});

var ractive = new Ractive({
    el: 'main',
    template: '#template',
    data: {
        stuff: [ 'a', 'b', 'c' ]
    }
});

ractive.findAllComponents( 'widget' )[1].teardown();
ractive.splice( 'stuff', 0, 1, 'd' );

// DOM is still unrepresentative of data, but in the way you'd expect
console.log( ractive.get( 'stuff' ) );

// this actually works if you uncomment it!
// ractive.merge( 'stuff', [ 'g', 'h', 'i' ] );