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>
CSS
.item {
transition: top 1s;
height: 28px;
background-color: #444;
color: #fff;
margin: 3px;
text-align: center;
width: 200px;
position: absolute;
font-family: Arial;
box-sizing: border-box;
padding-top: 5px;
}
JavaScript 1.7
let data = [
{name: 'A', color: '#FD5B03'},
{name: 'B', color: '#EB6361'},
{name: 'C', color: '#71BA51'},
{name: 'D', color: '#1DABB8'},
{name: 'E', color: '#D6523C'},
{name: 'F', color: '#9684A3'}
]
class Hello extends React.Component {
constructor(props) {
super(props);
this.state = {
data: []
};
this._setScores = this._setScores.bind(this);
}
render() {
let current = this.state.data.sort((a,b) => {
if(a.score < b.score) return -1;
if(a.score > b.score) return 1;
return 0;
});
let items = current.map((item,i) => {
return (
<div
key={item.name}
className="item"
style={{ top: (i*30) + 'px', backgroundColor: item.color }}>
{item.name}
</div>
);
});
return (
<div>
{items}
</div>
);
}
componentDidMount() {
this._setScores();
setInterval(this._setScores,2000);
}
_setScores() {
let list = data;
for(let i in list) {
list[i].score = Math.round(Math.random() * 1000);
}
this.setState({
data: list
})
}
};
ReactDOM.render(
<Hello name="World" />,
document.getElementById('container')
);