React Base Fiddle (JSX)

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

by Minjun Kim

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.24/browser.js"></script>
<script src="https://fb.me/react-with-addons-0.14.6.js"></script>
<script src="https://fb.me/react-dom-0.14.6.js"></script>
<script src=" https://cdnjs.cloudflare.com/ajax/libs/react-router/2.0.1/ReactRouter.js"></script>
<script src="https://facebook.github.io/react/js/jsfiddle-integration-babel.js"></script>

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

JavaScript 1.7

var ReactTransitionGroup = React.addons.TransitionGroup;
var Router = ReactRouter;
var Route = Router.Route, DefaultRoute = Router.DefaultRoute,
  Link=Router.Link, RouteHandler = Router.RouteHandler;

var App = React.createClass({
  mixins: [Router.State],
  componentDidMount: function() {
  },
  render: function() {
    var name = this.getRoutes().reverse()[0].name;

    return (
      <div>
        <ul>
            <li><Link to="view1">View1 link</Link></li>    
            <li><Link to="view2">View2 link</Link></li>    
        </ul>
        <ReactTransitionGroup component="div">
            <RouteHandler key={name}/>
        </ReactTransitionGroup>
      </div>
    );
  }
});
          
var View1 = React.createClass({
    componentWillLeave: function(cb) {
      console.log('View1 will leave');
      setTimeout(cb, 1);
    },
    render: function() {
        return (
          <div>View 1 content</div>
        );
    }          
});
          
var View2 = React.createClass({
    componentWillLeave: function(cb) {
      console.log('View2 will leave');
      setTimeout(cb, 1);
    },
    render: function() {
        return (
          <div>View 2 content</div>
        );
    }          
});
    
var routes = (
  <Route name="app" path="/" handler={App}>
    <Route name="view1" handler={View1}/>
    <Route name="view2" handler={View2}/>
  </Route>
);

Router.run(routes, function (Handler) {
  React.render(<Handler/>, document.getElementById('app'));
});