创建

  • ES6 方式 ```typescript import React from ‘react’; class MyComponent extends React.Component { constructor(props) {
    1. super(props);
    } render() {
    1. return ( <div>Hi</div> )
    } }

export default MyComponent;

  1. - ES5 方式:已过时,不支持 class,支持 IE8
  2. ```typescript
  3. import React from 'react';
  4. const MyComponent = React.createClass({
  5. render() {
  6. return ( <div>Hi</div> )
  7. }
  8. })

props

接收外部数据
接收外部函数
只读不写

  1. class Parent extends React.Component {
  2. constructor(props) {
  3. super(props);
  4. this.state = {n: 0}
  5. }
  6. onClick = () => { this.setState({ n: this.state.n + 1 }); }
  7. render() {
  8. return (<Son n={this.state.n} onClick={this.onClick}>Hi</Son>)
  9. }
  10. }
  11. class Son extends React.Component {
  12. constructor(props) {
  13. super(props);
  14. }
  15. render() {
  16. return (
  17. <div>
  18. {this.props.n} <button onClick={this.props.onClick}>+1</button>
  19. <div>
  20. {this.props.children}
  21. </div>
  22. </div>
  23. )
  24. }
  25. }

3.png

state

setState 的 shallow merge : React 只会检查新 state 和旧 state 第一层的区别,并把新 state 缺少的数据从旧 state 里拷贝过来