React Hello World Example with ES6+JSX
A basic Hello World widget with in browser JSX transformed + ES6 support
by survivant
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.13.1/JSXTransformer.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.13.1/react-with-addons.js"></script>
<script src="https://facebook.github.io/react/js/jsfiddle-integration.js"></script>
<div id="container">
<!-- This element's contents will be replaced with your component. -->
</div>
CSS
.widget {
width: 202px;
margin:100px auto;
// border:1px solid black;
padding:20px;
}
.name {
color: red;
}
.default-label {
border: 1px solid black;
padding: 10px;
margin-bottom: 10px;
width:180px;
}
.green-label {
border: 1px solid green;
padding: 10px;
margin-bottom: 10px;
width: 180px;
}
.default-input {
border: 1px solid #eaeaea;
padding: 10px;
width:180px;
}
.important-input {
border: 2px solid red;
width:180px;
}
img.center {
width: 100px;
height: 100px;
display: block;
margin: 15px auto;
}
JavaScript 1.7
class Logo extends React.Component {
render(){
return <img className="center" {...this.props} />;
}
}
Logo.propTypes = {
src: React.PropTypes.string.isRequired
};
class Label extends React.Component {
render() {
return <p className="default-label" {...this.props}> Hello World <span className="name"> {
this.props.name
} </span>
</p>;
}
}
class Input extends React.Component {
render() {
return <input
className="default-input"
placeholder="Enter your name"
{...this.props}
type="text"
/>;
}
}
class HelloWidget extends React.Component{
constructor(props) {
super(props);
this.handleChange = this.handleChange.bind(this)
this.state = {
name: ''
};
}
handleChange(e) {
this.setState({
name: e.target.value
});
}
render() {
return <div className="widget">
<Logo className="center" src="http://goo.gl/fx5Zwn"/>
<Label className="default-label" name={this.state.name} />
<Input className="default-input" onChange={this.handleChange} /> </div>;
}
}
React.render(<HelloWidget />, document.getElementById('container'));