JSFiddle - React, Tailwind, and code Playground

HTML

<script src="http://fb.me/react-with-addons-0.12.0.js"></script>
<script src="http://fb.me/JSXTransformer-0.12.0.js"></script>
<script src="http://fb.me/react-js-fiddle-integration.js"></script>

JavaScript 1.7

function ListenersService(){
	var listeners = {};
    this.addListener = function(callback){
    	var id;
        if(typeof callback === 'function'){
            id = Math.random().toString(36).slice(2);
            listeners[id] = callback;
        }
    	return id;
    }
    this.removeListener = function( id){
    	if(listeners[id]){
        	delete listeners[id];
            return true;
        }
        return false;
    }
    this.notifyListeners = function(data){
    	for (var id in listeners) {
          if(listeners.hasOwnProperty(id)){
            listeners[id](data);
          }
    	}
    }
}

function DataService(ListenersService){
	var Data = { value: 1 };
    var self = this;
    
    var listenersService = new ListenersService();
    this.addListener = listenersService.addListener;
    this.removeListener = listenersService.removeListener;
    this.getData = function(){
    	return Data;
    }
    
    setInterval(function(){
    	Data.value++;
   		listenersService.notifyListeners(Data);
    }, 1000);
}
var dataSevice = new DataService(ListenersService);

var World = React.createClass({
    render: function() {
        return <strong>{this.props.data.value}</strong>;
    }
});

var Hello = React.createClass({
    getInitialState: function() {
        return {
          data: this.props.dataService.getData()
        };
    },
    componentDidMount: function() {
        this.props.dataService.addListener(this.updateHandler)
    },
    updateHandler: function(data) {
        this.setState({
          data: data
        });
    },
    render: function() {
        return (
            <div>
                Value: <World data={this.state.data} />
            </div>
        );
    }
});

React.renderComponent(<Hello dataService={dataSevice} />, document.body);