React Base Fiddle (JSX)
Starting point for creating JSFiddles with React. This uses React with Addons.
by Tahir Ahmed
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.0.js"></script>
<script src="https://fb.me/react-dom-0.14.0.js"></script>
<script src="https://facebook.github.io/react/js/jsfiddle-integration-babel.js"></script>
<div id="container"></div>
CSS
.item { padding: 10px 0; }
.item:nth-child(odd) { background-color: #cc0; }
.item:nth-child(even) { background-color: #0cc; }
.btn-add, .btn-remove { position: fixed; right: 20px; z-index: 1 }
.btn-add { right: 90px; }
.item-transition-enter { opacity: 0; }
.item-transition-enter.item-transition-enter-active {
opacity: 1;
transition: opacity 400ms ease-in;
}
.item-transition-leave { opacity: 1; }
.item-transition-leave.item-transition-leave-active {
opacity: 0;
transition: opacity 400ms ease-out;
}
JavaScript 1.7
var ReactCSSTransitionGroup = React.addons.CSSTransitionGroup;
var length = 10;
var Item = React.createClass({
render: function() {
return (
<div className="item">My index is: {this.props.index}</div>
);
}
});
var Hello = React.createClass({
getInitialState: function() {
return { items: [] };
},
onAdded: function() {
var currentItems = this.state.items;
currentItems.push(<Item index={currentItems.length} key={currentItems.length} />);
this.setState({ items: currentItems });
},
onRemoved: function() {
var currentItems = this.state.items;
currentItems.pop();
this.setState({ items: currentItems });
},
render: function() {
return (
<div className="container">
<button className="btn-add" onClick={this.onAdded}>ADD</button>
<button className="btn-remove" onClick={this.onRemoved}>REMOVE</button>
<ReactCSSTransitionGroup transitionName="item-transition" transitionEnterTimeout={500} transitionLeaveTimeout={300} >
{this.state.items}
</ReactCSSTransitionGroup>
</div>
);
}
});
ReactDOM.render(
<Hello name="World" />,
document.getElementById('container')
);