React Base Fiddle (JSX)

Starting point for creating JSFiddles with React. This uses React with Addons.

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.24/browser.js"></script>
<script src="https://npmcdn.com/react@latest/dist/react-with-addons.js"></script>
<script src="https://npmcdn.com/react-dom@latest/dist/react-dom.js"></script>
<script src="https://facebook.github.io/react/js/jsfiddle-integration-babel.js"></script>

<div id="container">
    <!-- This element's contents will be replaced with your component. -->
</div>

JavaScript 1.7

var Input = React.createClass({
  componentWillReceiveProps(nextProps) {
  	if (this.props.lastTimeInputFocused !== nextProps.lastTimeInputFocused)
    	this.refs.input.focus()
  },
  render: function() {
    return <input ref='input' />
  }
})

var Hello = React.createClass({
	getInitialState() {
  	return { lastTimeInputFocused: undefined }
  },
  onDoFocus(e) {
  	e.preventDefault()
    
  	this.setState({ lastTimeInputFocused: new Date() })
  },
  render() {
  	return (
    	<div>
      	<Input lastTimeInputFocused={this.state.lastTimeInputFocused} />
        <br />
        <br />
        <b>Doesn't work</b>:
        <br />
       	<a href="#" onClick={this.onDoFocus}>Do Focus through link</a>
        <br />
        <button onClick={this.onDoFocus}>Do Focus through button</button>
        <br />
        <br />
        <b>Works:</b>
        <br />
        <div onClick={this.onDoFocus} style={{ outline: "1px solid", display: "inline-block" }}>Do Focus through div</div>
      </div>
    )
  }
})

ReactDOM.render(
  <Hello />,
  document.getElementById('container')
)