相关疑难解决方法(0)

使用哪种ReactJS语法; React.createClass还是ES6扩展?

我是ReactJS的初学者.我在各种网站上学习和研究了很多文档和电子书.我意识到ReactJS有两种语法.例:

React.createClass({
  displayName: 'Counter',
  getDefaultProps: function(){
    return {initialCount: 0};
  },
  getInitialState: function() {
    return {count: this.props.initialCount} 
  },
  propTypes: {initialCount: React.PropTypes.number},
  tick() {
    this.setState({count: this.state.count + 1});
  },
  render() {
    return (
      <div onClick={this.tick}>
        Clicks: {this.state.count}
      </div>
    );
  }
});
Run Code Online (Sandbox Code Playgroud)

这个版本是由ES6编写的:

class Counter extends React.Component {
  static propTypes = {initialCount: React.PropTypes.number};
  static defaultProps = {initialCount: 0};

  constructor(props) {
    super(props);
    this.state = {count: props.initialCount};
  }

  state = {count: this.props.initialCount};
  tick() {
    this.setState({count: this.state.count + 1});
  }

  render() {
    return (
      <div onClick={this.tick.bind(this)}> …
Run Code Online (Sandbox Code Playgroud)

syntax ecmascript-6 reactjs react-jsx

8
推荐指数
2
解决办法
3291
查看次数

标签 统计

ecmascript-6 ×1

react-jsx ×1

reactjs ×1

syntax ×1