React ES6 组件

前端之家收集整理的这篇文章主要介绍了React ES6 组件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

不得不说,开源中国这博客的 Typography 做的不太行,几次想要使用 markdown语法写点东西的时候,想到那层次不清的排版,还是放弃了。既然这样,还是继续使用富文本吧。

React

基本组件 + render 函数

import React,{Component} from 'react'
import ReactDOM from 'react-dom'

class App extends React.Component {
  render() {
    return (
      <Router>
        <div className='container'>
          <Nav />
          <Switch>
            <Route exact path='/' component={Home} />
            <Route exact path='/battle' component={Battle} />
          </Switch>
        </div>
      </Router>
    )
  }
}

状态初始化 state

class App extends React.Component {  
  constructor(props) {
    super(props);
    this.state = {
      number: 0,};
  };

  render() {
    // more code here
  }
}

state 的 prop 验证

export class Counter extends React.Component {
  constructor(props) {
    super(props);
    this.state = {count: props.initialCount};
  }
  tick() {
    this.setState({count: this.state.count + 1});
  }
  render() {
    return (
      <div onClick={this.tick.bind(this)}>
        Clicks: {this.state.count}
      </div>
    );
  }
}

// prop verify
Counter.propTypes = { initialCount: React.PropTypes.number };
Counter.defaultProps = { initialCount: 0 };

挂载函数 componentDidMount

class App extends React.Component {  
  constructor() {
    this.state = { data: [] }
  }
  loadFromServer() {
    $.ajax({
      url: this.props.url,dataType: 'json',success: (data) => {
        this.setState({data: data})
      },error: (xhr,status,err) => {
        console.error(this.props.url,err.toString())
      }
    })
  }
  componentDidMount() {  
    this.loadFromServer();
    setInterval(this.loadFromServer.bind(this),this.props.pollInterval)
  }
  render() {
    return <div className="text">
    <h1>Comments
    <List data={this.state.data} />
    </div>
  }
}

猜你在找的React相关文章