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://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
class App extends React.Component {
render(){
return (
<Contacts/>
);
}
}
class Contacts extends React.Component {
constructor(props) {
super(props);
this.state = {
contactData: [
{name: "Abet", phone: "010-0000-0001"},
{name: "Betty", phone: "010-0000-0002"},
{name: "Charlie", phone: "010-0000-0003"},
{name: "David", phone: "010-0000-0004"}
]
};
}
_insertContact(name, phone){
let newState = React.addons.update(this.state, {
contactData: {
$push: [{"name": name, "phone": phone}]
}
});
this.setState(newState);
}
render(){
return(
<div>
<h1>Contacts</h1>
<ul>
{this.state.contactData.map((contact, i) => {
return (<ContactInfo name={contact.name}
phone={contact.phone}
key={i}/>);
})}
</ul>
<ContactCreator onInsert={this._insertContact.bind(this)}/>
</div>
);
}
}
class ContactInfo extends React.Component {
render() {
return(
<li>{this.props.name} {this.props.phone}</li>
);
}
}
class ContactCreator extends React.Component {
constructor(props) {
super(constructor);
// Configure default state
this.state = {
name: "",
phone: ""
};
}
handleClick(){
this.props.onInsert(this.state.name, this.state.phone);
this.setState({
name: "",
phone: ""
});
}
handleChange(e){
var nextState = {};
nextState[e.target.name] = e.target.value;
this.setState(nextState);
}
render() {
return (
...