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>
          ...