转载地址:
http://www.ruanyifeng.com/blog/2015/03/react.html
/** * Created by Administrator on 2016-12-8. */ import React from 'react'; import ReactDOM from 'react-dom'; var names = ['Alice','Emily','Kate']; /*ReactDOM.render()*/ ReactDOM.render( <h1>Hello,world!</h1>,document.getElementById('example') ); /*JSX 语法*/ ReactDOM.render( <div> { names.map(function (name) { return <div>Hello,{name}!</div> }) } </div>,document.getElementById('example') ); var arr = [ <h1>Hello world!</h1>,<h2>React is awesome</h2>,]; ReactDOM.render( <div>{arr}</div>,document.getElementById('example') ); /*组件*/ var HelloMessage = React.createClass({ render: function() { return <h1>Hello {this.props.name}</h1>; } }); ReactDOM.render( <HelloMessage name="John" />,document.getElementById('example') ); /*this.props.children*/ var NotesList = React.createClass({ render: function() { return ( <ol> { React.Children.map(this.props.children,function (child) { return <li>{child}</li>; }) } </ol> ); } }); ReactDOM.render( <NotesList> <span>hello</span> <span>world</span> </NotesList>,document.getElementById('example') ); /*PropTypes*/ var MyTitle = React.createClass({ propTypes: { title: React.PropTypes.string.isrequired,},render: function() { return <h1> {this.props.title} </h1>; } }); var data = "string!"; ReactDOM.render( <MyTitle title={data} />,document.getElementById('example') ); /*获取真实的DOM节点*/ var MyComponent = React.createClass({ handleClick: function() { this.refs.myTextInput.focus(); },render: function() { return ( <div> <input type="text" ref="myTextInput" /> <input type="button" value="Focus the text input" onClick={this.handleClick} /> </div> ); } }); ReactDOM.render( <MyComponent />,document.getElementById('example') ); /*this.state*/ var LikeButton = React.createClass({ getInitialState: function() { return {liked: true}; },handleClick: function(event) { this.setState({liked: !this.state.liked}); },render: function() { var text = this.state.liked ? 'like' : 'haven\'t liked'; return ( <p onClick={this.handleClick}> You {text} this. Click to toggle. </p> ); } }); ReactDOM.render( <LikeButton />,document.getElementById('example') ); /*表单*/ var Input = React.createClass({ getInitialState: function() { return {value: 'Hello!'}; },handleChange: function(event) { this.setState({value: event.target.value}); },render: function () { var value = this.state.value; return ( <div> <input type="text" value={value} onChange={this.handleChange} /> <p>{value}</p> </div> ); } }); ReactDOM.render(<Input/>,document.getElementById('example')); /*组件的生命周期*/ var Hello = React.createClass({ getInitialState: function () { return { opacity: 1.0 }; },componentDidMount: function () { this.timer = setInterval(function () { var opacity = this.state.opacity; opacity -= .05; if (opacity < 0.1) { opacity = 1.0; } this.setState({ opacity: opacity }); }.bind(this),100); },render: function () { return ( <div style={{opacity: this.state.opacity}}> Hello {this.props.name} </div> ); } }); ReactDOM.render( <Hello name="world"/>,document.getElementById('example') ); /*Ajax*/ var UserGist = React.createClass({ getInitialState: function() { return { username: '',lastGistUrl: '' }; },componentDidMount: function() { $.get(this.props.source,function(result) { var lastGist = result[0]; if (this.isMounted()) { this.setState({ username: lastGist.owner.login,lastGistUrl: lastGist.html_url }); } }.bind(this)); },render: function() { return ( <div> {this.state.username}'s last gist is <a href={this.state.lastGistUrl}>here</a>. </div> ); } }); ReactDOM.render( <UserGist source="https://api.github.com/users/octocat/gists" />,document.getElementById('example') );