Skip to content

Instantly share code, notes, and snippets.

@xgqfrms-GitHub
Created March 27, 2017 10:58
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xgqfrms-GitHub/384aaa00f84a01537c96708c5ce5b6be to your computer and use it in GitHub Desktop.
Save xgqfrms-GitHub/384aaa00f84a01537c96708c5ce5b6be to your computer and use it in GitHub Desktop.
React-Babel

ES6

var UserGist = React.createClass({
  getInitialState() {
    return {
      username: '',
      lastGistUrl: ''
    };
  },

  componentDidMount() {
    this.serverRequest = $.get(this.props.source, function (result) {
      var lastGist = result[0];
      this.setState({
        username: lastGist.owner.login,
        lastGistUrl: lastGist.html_url
      });
    }.bind(this));
  },

  componentWillUnmount() {
    this.serverRequest.abort();
  },

  render() {
    return (
      <div>
        {this.state.username} 用户最新的 Gist 共享地址:
        <a href={this.state.lastGistUrl}>{this.state.lastGistUrl}</a>
      </div>
    );
  }
});

ES5

'use strict';

var UserGist = React.createClass({
  displayName: 'UserGist',
  getInitialState: function getInitialState() {
    return {
      username: '',
      lastGistUrl: ''
    };
  },
  componentDidMount: function componentDidMount() {
    this.serverRequest = $.get(this.props.source, function (result) {
      var lastGist = result[0];
      this.setState({
        username: lastGist.owner.login,
        lastGistUrl: lastGist.html_url
      });
    }.bind(this));
  },
  componentWillUnmount: function componentWillUnmount() {
    this.serverRequest.abort();
  },
  render: function render() {
    return React.createElement(
      'div',
      null,
      this.state.username,
      ' \u7528\u6237\u6700\u65B0\u7684 Gist \u5171\u4EAB\u5730\u5740\uFF1A',
      React.createElement(
        'a',
        { href: this.state.lastGistUrl },
        this.state.lastGistUrl
      )
    );
  }
});
@xgqfrms-GitHub
Copy link
Author

https://www.runoob.com/react/react-ajax.html

https://babeljs.io/repl/#?babili=false&evaluate=true&lineWrap=false&presets=latest%2Creact%2Cstage-2&targets=&browsers=&builtIns=false&code=var%20UserGist%20%3D%20React.createClass(%7B%0D%0A%20%20getInitialState()%20%7B%0D%0A%20%20%20%20return%20%7B%0D%0A%20%20%20%20%20%20username%3A%20''%2C%0D%0A%20%20%20%20%20%20lastGistUrl%3A%20''%0D%0A%20%20%20%20%7D%3B%0D%0A%20%20%7D%2C%0D%0A%0D%0A%20%20componentDidMount()%20%7B%0D%0A%20%20%20%20this.serverRequest%20%3D%20%24.get(this.props.source%2C%20function%20(result)%20%7B%0D%0A%20%20%20%20%20%20var%20lastGist%20%3D%20result%5B0%5D%3B%0D%0A%20%20%20%20%20%20this.setState(%7B%0D%0A%20%20%20%20%20%20%20%20username%3A%20lastGist.owner.login%2C%0D%0A%20%20%20%20%20%20%20%20lastGistUrl%3A%20lastGist.html_url%0D%0A%20%20%20%20%20%20%7D)%3B%0D%0A%20%20%20%20%7D.bind(this))%3B%0D%0A%20%20%7D%2C%0D%0A%0D%0A%20%20componentWillUnmount()%20%7B%0D%0A%20%20%20%20this.serverRequest.abort()%3B%0D%0A%20%20%7D%2C%0D%0A%0D%0A%20%20render()%20%7B%0D%0A%20%20%20%20return%20(%0D%0A%20%20%20%20%20%20%3Cdiv%3E%0D%0A%20%20%20%20%20%20%20%20%7Bthis.state.username%7D%20%E7%94%A8%E6%88%B7%E6%9C%80%E6%96%B0%E7%9A%84%20Gist%20%E5%85%B1%E4%BA%AB%E5%9C%B0%E5%9D%80%EF%BC%9A%0D%0A%20%20%20%20%20%20%20%20%3Ca%20href%3D%7Bthis.state.lastGistUrl%7D%3E%7Bthis.state.lastGistUrl%7D%3C%2Fa%3E%0D%0A%20%20%20%20%20%20%3C%2Fdiv%3E%0D%0A%20%20%20%20)%3B%0D%0A%20%20%7D%0D%0A%7D)%3B%0D%0A%0D%0A&experimental=false&loose=false&spec=false&playground=true

@xgqfrms-GitHub
Copy link
Author

在子组件上使用表单

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>React 实例</title>
    <script src="https://cdn.bootcss.com/react/15.4.2/react.min.js"></script>
    <script src="https://cdn.bootcss.com/react/15.4.2/react-dom.min.js"></script>
    <script src="https://cdn.bootcss.com/babel-standalone/6.22.1/babel.min.js"></script>
</head>
<body>
    <div id="example"></div>
    <script type="text/babel">
    var Content = React.createClass({
      render() {
        return ( 
        <div>
                <input type="text" value={this.props.myDataProp} onChange={this.props.updateStateProp} /> 
                <h4>{this.props.myDataProp}</h4>
         </div>);
      }
    });
    
    var HelloMessage = React.createClass({
      getInitialState() {
        return {value: 'Hello Runoob!'};
      },
      handleChange(event) {
        this.setState({value: event.target.value});
      },
      render() {
        var value = this.state.value;
        return (
            <div>
                <Content 
                  myDataProp = {value} 
                  updateStateProp = {this.handleChange}>
               </Content>
           </div>);
      }
    });
    ReactDOM.render(
      <HelloMessage />,
      document.getElementById('example')
    );
    </script>
</body>
</html>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment