Edit in JSFiddle

/** @jsx React.DOM */

var Kendo = {};

Kendo.RadialGauge = React.createClass({

    getDefaultProps: function() {
        return {
            theme: "silver",
            minorUnit: 5,
            startAngle: -30,
            endAngle: 210,
            max: 180
        }
    },

    componentDidMount: function() {
        var props = this.props;
        $(this.getDOMNode()).kendoRadialGauge({
            theme: props.theme,
            pointer: {
                value: props.value
            },    
            scale: {
                minorUnit: props.minorUnit,
                startAngle: props.startAngle,
                endAngle: props.endAngle,
                max: props.max
            }
        });
    },
    
    componentWillReceiveProps: function(nextProps) {
        if(nextProps.value !== this.props.value) {
            $(this.getDOMNode()).data("kendoRadialGauge").value(nextProps.value);            
        }
    },

    render: function() {
        return <div className="gauge" />;
    }
});

Kendo.Slider = React.createClass({

    mixins: [React.postal],

    getDefaultProps: function() {
        return {
            min: 0,
            max: 180,
            showButtons: false
        }
    },

    componentDidMount: function() {
        var props = this.props;
        $(this.getDOMNode()).kendoSlider({
            min: props.min,
            max: props.max,
            showButtons: props.showButtons,
            value: this.props.value,
            change: this.handleChange
        });
    },
    
    componentWillUnmount: function() {
        $(this.getDOMNode()).data("kendoSlider").destroy();
    },
    
    handleChange: function(e) {
        this.publish("change.speed", { speed: e.value });
    },

    render: function() {
        return <div />
    }
});

var UnitOfMeasure = React.createClass({

    mixins: [React.postal],
    
    handleChange: function(e) {
        this.publish("change.uom", { uom: $(this.getDOMNode()).val() });
    },
    
    render: function() {
        return <select className="uom-select" onChange={this.handleChange}>
            <option>MPH</option>
            <option>KPH</option>
        </select>;
    }
});

var SpeedDisplay = React.createClass({    
    render: function() {
        return <div className="speed-display">{ this.props.speed + " " + this.props.uom }</div>;
    }
});

var FormExample = React.createClass({

    mixins: [React.postal],
    
    getInitialState: function() {
        return {
            speed: 88,
            uom:"MPH"
        }
    },
    
    componentWillMount: function() {
        this.subscribe("change.#", function(data) {
            this.setState(data);
        });
    },
    
    componentWillUnmount: function() {
        this.disposeSubscriptions();
    },

    render: function() {
        return <div>
            <div className="container">
                <Kendo.RadialGauge value={this.state.speed} />
                <Kendo.Slider value={this.state.speed} channel={this.props.channel} />
                <UnitOfMeasure channel={this.props.channel} />
            </div>
            <SpeedDisplay speed={this.state.speed} uom={this.state.uom} />
        </div>;
    }
});

$(function () {
    React.renderComponent(
        <FormExample channel="kendo"/>,
        document.body
    );
});
@import url(http://fonts.googleapis.com/css?family=Orbitron:400,700);

body {
    padding: 1em;
}

.container {
    background: transparent url("http://demos.telerik.com/kendo-ui/content/dataviz/gauge/gauge-container-partial.png") no-repeat 50% 50%;
    width: 386px;
    height: 386px;
    text-align: center;
    margin: 0 auto 30px auto;
}
.gauge {
    width: 350px;
    height: 300px;
    margin: 0 auto;
}
.container .k-slider {
    margin-top: -15px;
    width: 140px;
}

.uom-select {
    font-size: 1.5em;
    color: #A3A3A3;
    padding: .10em 1em .10em 1em;
    border: 1pt solid silver;
    border-radius: 3px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;    
    display:block;
    margin: auto;
    text-align:center;
}

.speed-display {
    font-family: 'Orbitron', sans-serif;
    font-size: 52pt;
    font-weight: bold;
    color: hsla(203, 92%, 39%, 0.81);
    text-align:center;
}
<script src="http://fb.me/react-js-fiddle-integration.js"></script>