React Base Fiddle (JSX)
Starting point for creating JSFiddles with React. This uses React with Addons.
by evan
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.0.1.js"></script>
<script src="https://fb.me/react-dom-15.0.1.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
textarea {
width: 200px;
height: 200px;
}
JavaScript 1.7
const SignUp = React.createClass({
getInitialState() {
return {
firstName: '',
lastName: '',
username: '',
email: '',
password: '',
confirmPassword: ''
};
},
updateFormState(e, fieldName) {
// e is a virtualized Event object
// e.target is the *current* HTMLElement associated with the mounted ReactElement.
// (the actual HTMLElement object associated with a ReactElement can change at any time,
// so we don't ever want to store a reference to it!)
// I promise this is better than letting the browser manage the HTMLElement state-
// quick example, you could make it e.target.value.toUpperCase(), or do inline validation
this.setState({
[fieldName]: e.target.value
});
},
signUp() {
console.log(this.formState);
},
render() {
return (
<div>
<h1>Sign Up</h1>
<form ref="form">
<p>
<label>
First Name: <input type="text" value={this.state.firstName} onChange={e => this.updateFormState(e, 'firstName')} />
</label>
</p>
<p>
<label>
Last Name: <input type="text" value={this.state.lastName} onChange={e => this.updateFormState(e, 'lastName')} />
</label>
</p>
<p>
<label>
Username: <input type="text" value={this.state.username} onChange={e => this.updateFormState(e, 'username')} />
</label>
</p>
<p>
<label>
Email: <input type="text" value={this.state.email} onChange={e => this.updateFormState(e, 'email')} />
</label>
...