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://fb.me/react-with-addons-15.2.0.js"></script>
<script src="https://fb.me/react-dom-15.2.0.js"></script>
<script src="https://facebook.github.io/react/js/jsfiddle-integration-babel.js"></script>
<div id="container"></div>
CSS
span {
display: inline-block;
padding: 10px;
}
JavaScript 1.7
class Pagination extends React.Component {
constructor(props) {
super(props);
this.state = { current: 1 };
this.items = ['a', 'b', 'c'];
this.filteredItems = [];
this.prev = this.prev.bind(this);
this.next = this.next.bind(this);
this.set = this.set.bind(this);
}
prev() {
this.setState({ current: this.state.current - 1});
}
next() {
this.setState({ current: this.state.current + 1});
}
set(val) {
this.setState({ current: val });
}
render() {
const items = this.items.reduce((arr, i, idx) => {
if((idx + 1) === this.state.current) {
arr.push(
<span key={`item_${idx}`}>{i}</span>
);
}
return arr;
}, []);
return (
<div>
{items}
<br />
<span onClick={this.prev}>prev</span>
<span onClick={this.set.bind(this, 1)}>1</span>
<span onClick={this.set.bind(this, 2)}>2</span>
<span onClick={this.set.bind(this, 3)}>3</span>
<span onClick={this.next}>next</span>
<br /><span>current: {this.state.current}</span>
</div>
)
}
}
ReactDOM.render(
<Pagination />,
document.getElementById('container')
);